<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621680875751"><span id="local-6989586621680875752"><span id="local-6989586621680875753"><span id="local-6989586621680875754"><span id="local-6989586621680875755"><span id="local-6989586621680875756"><span id="local-6989586621680875757"></span></span></span></span></span></span></span><span class="hs-pragma">{-# LANGUAGE ConstraintKinds #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE EmptyCase #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE EmptyDataDeriving #-}</span><span>
</span><span id="line-5"></span><span class="hs-pragma">{-# LANGUAGE FlexibleContexts #-}</span><span>
</span><span id="line-6"></span><span class="hs-pragma">{-# LANGUAGE FlexibleInstances #-}</span><span>
</span><span id="line-7"></span><span class="hs-pragma">{-# LANGUAGE FunctionalDependencies #-}</span><span>
</span><span id="line-8"></span><span class="hs-pragma">{-# LANGUAGE MultiParamTypeClasses #-}</span><span>
</span><span id="line-9"></span><span class="hs-pragma">{-# LANGUAGE TypeFamilies #-}</span><span>
</span><span id="line-10"></span><span class="hs-pragma">{-# LANGUAGE TypeFamilyDependencies #-}</span><span>
</span><span id="line-11"></span><span class="hs-pragma">{-# LANGUAGE DataKinds #-}</span><span>
</span><span id="line-12"></span><span class="hs-pragma">{-# LANGUAGE StandaloneDeriving #-}</span><span>
</span><span id="line-13"></span><span class="hs-pragma">{-# LANGUAGE PatternSynonyms #-}</span><span>
</span><span id="line-14"></span><span class="hs-pragma">{-# LANGUAGE UndecidableInstances #-}</span><span> </span><span class="hs-comment">-- Wrinkle in Note [Trees That Grow]</span><span>
</span><span id="line-15"></span><span>                                      </span><span class="hs-comment">-- in module GHC.Hs.Extension</span><span>
</span><span id="line-16"></span><span class="hs-pragma">{-# LANGUAGE UndecidableSuperClasses #-}</span><span>  </span><span class="hs-comment">-- for IsPass; see Note [NoGhcTc]</span><span>
</span><span id="line-17"></span><span class="hs-pragma">{-# LANGUAGE ScopedTypeVariables #-}</span><span>
</span><span id="line-18"></span><span class="hs-pragma">{-# LANGUAGE TypeApplications #-}</span><span>
</span><span id="line-19"></span><span class="hs-pragma">{-# LANGUAGE GADTs #-}</span><span>
</span><span id="line-20"></span><span class="hs-pragma">{-# LANGUAGE RankNTypes #-}</span><span>
</span><span id="line-21"></span><span class="hs-pragma">{-# LANGUAGE AllowAmbiguousTypes #-}</span><span>      </span><span class="hs-comment">-- for pprIfTc, etc.</span><span>
</span><span id="line-22"></span><span>
</span><span id="line-23"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Hs.Extension</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-24"></span><span>
</span><span id="line-25"></span><span class="hs-comment">-- This module captures the type families to precisely identify the extension</span><span>
</span><span id="line-26"></span><span class="hs-comment">-- points for GHC.Hs syntax</span><span>
</span><span id="line-27"></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-29"></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#"><span class="hs-identifier">Data.Data</span></a></span><span> </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Fixity"><span class="hs-identifier">Fixity</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html"><span class="hs-identifier">GHC.Types.Name.Reader</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Var.html"><span class="hs-identifier">GHC.Types.Var</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html"><span class="hs-identifier">GHC.Types.SrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier">Located</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Kind.html#"><span class="hs-identifier">Data.Kind</span></a></span><span>
</span><span id="line-38"></span><span>
</span><span id="line-39"></span><span class="hs-comment">{-
Note [Trees that grow]
~~~~~~~~~~~~~~~~~~~~~~

See https://gitlab.haskell.org/ghc/ghc/wikis/implementing-trees-that-grow

The hsSyn AST is reused across multiple compiler passes. We also have the
Template Haskell AST, and the haskell-src-exts one (outside of GHC)

Supporting multiple passes means the AST has various warts on it to cope with
the specifics for the phases, such as the 'ValBindsOut', 'ConPatOut',
'SigPatOut' etc.

The growable AST will allow each of these variants to be captured explicitly,
such that they only exist in the given compiler pass AST, as selected by the
type parameter to the AST.

In addition it will allow tool writers to define their own extensions to capture
additional information for the tool, in a natural way.

A further goal is to provide a means to harmonise the Template Haskell and
haskell-src-exts ASTs as well.

Wrinkle: In order to print out the AST, we need to know it is Outputable.
We also sometimes need to branch on the particular pass that we're in
(e.g. to print out type information once we know it). In order to allow
both of these actions, we define OutputableBndrId, which gathers the necessary
OutputableBndr and IsPass constraints. The use of this constraint in instances
generally requires UndecidableInstances.

See also Note [IsPass] and Note [NoGhcTc].

Note [IsPass]
~~~~~~~~~~~~~
One challenge with the Trees That Grow approach
is that we sometimes have different information in different passes.
For example, we have

  type instance XViaStrategy GhcPs = LHsSigType GhcPs
  type instance XViaStrategy GhcRn = LHsSigType GhcRn
  type instance XViaStrategy GhcTc = Type

This means that printing a DerivStrategy (which contains an XViaStrategy)
might need to print a LHsSigType, or it might need to print a type. Yet we
want one Outputable instance for a DerivStrategy, instead of one per pass. We
could have a large constraint, including e.g. (Outputable (XViaStrategy p),
Outputable (XViaStrategy GhcTc)), and pass that around in every context where
we might output a DerivStrategy. But a simpler alternative is to pass a
witness to whichever pass we're in. When we pattern-match on that (GADT)
witness, we learn the pass identity and can then print away. To wit, we get
the definition of GhcPass and the functions isPass. These allow us to do away
with big constraints, passing around all manner of dictionaries we might or
might not use. It does mean that we have to manually use isPass when printing,
but these places are few.

See Note [NoGhcTc] about the superclass constraint to IsPass.

Note [NoGhcTc]
~~~~~~~~~~~~~~
An expression is parsed into HsExpr GhcPs, renamed into HsExpr GhcRn, and
then type-checked into HsExpr GhcTc. Not so for types! These get parsed
into HsType GhcPs, renamed into HsType GhcRn, and then type-checked into
Type. We never build an HsType GhcTc. Why do this? Because we need to be
able to compare type-checked types for equality, and we don't want to do
this with HsType.

This causes wrinkles within the AST, where we normally thing that the whole
AST travels through the GhcPs --&gt; GhcRn --&gt; GhcTc pipeline as one. So we
have the NoGhcTc type family, which just replaces GhcTc with GhcRn, so that
user-written types can be preserved (as HsType GhcRn) even in e.g. HsExpr GhcTc.

For example, this is used in ExprWithTySig:
    | ExprWithTySig
                (XExprWithTySig p)

                (LHsExpr p)
                (LHsSigWcType (NoGhcTc p))

If we have (e :: ty), we still want to be able to print that (with the :: ty)
after type-checking. So we retain the LHsSigWcType GhcRn, even in an
HsExpr GhcTc. That's what NoGhcTc does.

When we're printing the type annotation, we need to know
(Outputable (LHsSigWcType GhcRn)), even though we've assumed only that
(OutputableBndrId GhcTc). We thus must be able to prove OutputableBndrId (NoGhcTc p)
from OutputableBndrId p. The extra constraints in OutputableBndrId and
the superclass constraints of IsPass allow this. Note that the superclass
constraint of IsPass is *recursive*: it asserts that IsPass (NoGhcTcPass p) holds.
For this to make sense, we need -XUndecidableSuperClasses and the other constraint,
saying that NoGhcTcPass is idempotent.

-}</span><span>
</span><span id="line-131"></span><span>
</span><span id="line-132"></span><span class="hs-comment">-- | A placeholder type for TTG extension points that are not currently</span><span>
</span><span id="line-133"></span><span class="hs-comment">-- unused to represent any particular value.</span><span>
</span><span id="line-134"></span><span class="hs-comment">--</span><span>
</span><span id="line-135"></span><span class="hs-comment">-- This should not be confused with 'NoExtCon', which are found in unused</span><span>
</span><span id="line-136"></span><span class="hs-comment">-- extension /constructors/ and therefore should never be inhabited. In</span><span>
</span><span id="line-137"></span><span class="hs-comment">-- contrast, 'NoExtField' is used in extension /points/ (e.g., as the field of</span><span>
</span><span id="line-138"></span><span class="hs-comment">-- some constructor), so it must have an inhabitant to construct AST passes</span><span>
</span><span id="line-139"></span><span class="hs-comment">-- that manipulate fields with that extension point as their type.</span><span>
</span><span id="line-140"></span><span class="hs-keyword">data</span><span> </span><span id="NoExtField"><span class="annot"><a href="GHC.Hs.Extension.html#NoExtField"><span class="hs-identifier hs-var">NoExtField</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="NoExtField"><span class="annot"><a href="GHC.Hs.Extension.html#NoExtField"><span class="hs-identifier hs-var">NoExtField</span></a></span></span><span>
</span><span id="line-141"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680875718"><span id="local-6989586621680875720"><span id="local-6989586621680875722"><span id="local-6989586621680875724"><span id="local-6989586621680875726"><span id="local-6989586621680875728"><span id="local-6989586621680875730"><span id="local-6989586621680875732"><span id="local-6989586621680875734"><span id="local-6989586621680875736"><span id="local-6989586621680875738"><span id="local-6989586621680875740"><span id="local-6989586621680875742"><span id="local-6989586621680875744"><span class="annot"><span class="annottext">Typeable NoExtField
Typeable NoExtField
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; NoExtField -&gt; c NoExtField)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtField)
-&gt; (NoExtField -&gt; Constr)
-&gt; (NoExtField -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtField))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c NoExtField))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; NoExtField -&gt; NoExtField)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField)
-&gt; Data NoExtField
NoExtField -&gt; DataType
NoExtField -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; NoExtField -&gt; NoExtField
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtField
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; NoExtField -&gt; c NoExtField
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtField)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c NoExtField)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtField -&gt; m NoExtField
gmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; u
$cgmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtField -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtField -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; NoExtField -&gt; NoExtField
$cgmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; NoExtField -&gt; NoExtField
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c NoExtField)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c NoExtField)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtField)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtField)
dataTypeOf :: NoExtField -&gt; DataType
$cdataTypeOf :: NoExtField -&gt; DataType
toConstr :: NoExtField -&gt; Constr
$ctoConstr :: NoExtField -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtField
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtField
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; NoExtField -&gt; c NoExtField
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; NoExtField -&gt; c NoExtField
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680875713"><span id="local-6989586621680875715"><span class="annot"><span class="annottext">NoExtField -&gt; NoExtField -&gt; Bool
(NoExtField -&gt; NoExtField -&gt; Bool)
-&gt; (NoExtField -&gt; NoExtField -&gt; Bool) -&gt; Eq NoExtField
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: NoExtField -&gt; NoExtField -&gt; Bool
$c/= :: NoExtField -&gt; NoExtField -&gt; Bool
== :: NoExtField -&gt; NoExtField -&gt; Bool
$c== :: NoExtField -&gt; NoExtField -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680875693"><span id="local-6989586621680875695"><span id="local-6989586621680875698"><span id="local-6989586621680875701"><span id="local-6989586621680875704"><span id="local-6989586621680875706"><span id="local-6989586621680875708"><span class="annot"><span class="annottext">Eq NoExtField
Eq NoExtField
-&gt; (NoExtField -&gt; NoExtField -&gt; Ordering)
-&gt; (NoExtField -&gt; NoExtField -&gt; Bool)
-&gt; (NoExtField -&gt; NoExtField -&gt; Bool)
-&gt; (NoExtField -&gt; NoExtField -&gt; Bool)
-&gt; (NoExtField -&gt; NoExtField -&gt; Bool)
-&gt; (NoExtField -&gt; NoExtField -&gt; NoExtField)
-&gt; (NoExtField -&gt; NoExtField -&gt; NoExtField)
-&gt; Ord NoExtField
NoExtField -&gt; NoExtField -&gt; Bool
NoExtField -&gt; NoExtField -&gt; Ordering
NoExtField -&gt; NoExtField -&gt; NoExtField
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: NoExtField -&gt; NoExtField -&gt; NoExtField
$cmin :: NoExtField -&gt; NoExtField -&gt; NoExtField
max :: NoExtField -&gt; NoExtField -&gt; NoExtField
$cmax :: NoExtField -&gt; NoExtField -&gt; NoExtField
&gt;= :: NoExtField -&gt; NoExtField -&gt; Bool
$c&gt;= :: NoExtField -&gt; NoExtField -&gt; Bool
&gt; :: NoExtField -&gt; NoExtField -&gt; Bool
$c&gt; :: NoExtField -&gt; NoExtField -&gt; Bool
&lt;= :: NoExtField -&gt; NoExtField -&gt; Bool
$c&lt;= :: NoExtField -&gt; NoExtField -&gt; Bool
&lt; :: NoExtField -&gt; NoExtField -&gt; Bool
$c&lt; :: NoExtField -&gt; NoExtField -&gt; Bool
compare :: NoExtField -&gt; NoExtField -&gt; Ordering
$ccompare :: NoExtField -&gt; NoExtField -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-142"></span><span>
</span><span id="line-143"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680875689"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoExtField"><span class="hs-identifier hs-type">NoExtField</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-144"></span><span>  </span><span id="local-6989586621680875687"><span class="annot"><span class="annottext">ppr :: NoExtField -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">NoExtField
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NoExtField&quot;</span></span><span>
</span><span id="line-145"></span><span>
</span><span id="line-146"></span><span class="hs-comment">-- | Used when constructing a term with an unused extension point.</span><span>
</span><span id="line-147"></span><span class="annot"><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-type">noExtField</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoExtField"><span class="hs-identifier hs-type">NoExtField</span></a></span><span>
</span><span id="line-148"></span><span id="noExtField"><span class="annot"><span class="annottext">noExtField :: NoExtField
</span><a href="GHC.Hs.Extension.html#noExtField"><span class="hs-identifier hs-var hs-var">noExtField</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtField
</span><a href="GHC.Hs.Extension.html#NoExtField"><span class="hs-identifier hs-var">NoExtField</span></a></span><span>
</span><span id="line-149"></span><span>
</span><span id="line-150"></span><span class="hs-comment">-- | Used in TTG extension constructors that have yet to be extended with</span><span>
</span><span id="line-151"></span><span class="hs-comment">-- anything. If an extension constructor has 'NoExtCon' as its field, it is</span><span>
</span><span id="line-152"></span><span class="hs-comment">-- not intended to ever be constructed anywhere, and any function that consumes</span><span>
</span><span id="line-153"></span><span class="hs-comment">-- the extension constructor can eliminate it by way of 'noExtCon'.</span><span>
</span><span id="line-154"></span><span class="hs-comment">--</span><span>
</span><span id="line-155"></span><span class="hs-comment">-- This should not be confused with 'NoExtField', which are found in unused</span><span>
</span><span id="line-156"></span><span class="hs-comment">-- extension /points/ (not /constructors/) and therefore can be inhabited.</span><span>
</span><span id="line-157"></span><span>
</span><span id="line-158"></span><span class="hs-comment">-- See also [NoExtCon and strict fields].</span><span>
</span><span id="line-159"></span><span class="hs-keyword">data</span><span> </span><span id="NoExtCon"><span class="annot"><a href="GHC.Hs.Extension.html#NoExtCon"><span class="hs-identifier hs-var">NoExtCon</span></a></span></span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680875654"><span id="local-6989586621680875656"><span id="local-6989586621680875658"><span id="local-6989586621680875660"><span id="local-6989586621680875662"><span id="local-6989586621680875664"><span id="local-6989586621680875666"><span id="local-6989586621680875668"><span id="local-6989586621680875670"><span id="local-6989586621680875672"><span id="local-6989586621680875674"><span id="local-6989586621680875676"><span id="local-6989586621680875678"><span id="local-6989586621680875680"><span class="annot"><span class="annottext">Typeable NoExtCon
Typeable NoExtCon
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; NoExtCon -&gt; c NoExtCon)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtCon)
-&gt; (NoExtCon -&gt; Constr)
-&gt; (NoExtCon -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtCon))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c NoExtCon))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; NoExtCon -&gt; NoExtCon)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon)
-&gt; Data NoExtCon
NoExtCon -&gt; DataType
NoExtCon -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; NoExtCon -&gt; NoExtCon
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtCon
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; NoExtCon -&gt; c NoExtCon
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtCon)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c NoExtCon)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; NoExtCon -&gt; m NoExtCon
gmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; u
$cgmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; NoExtCon -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; NoExtCon -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; NoExtCon -&gt; NoExtCon
$cgmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; NoExtCon -&gt; NoExtCon
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c NoExtCon)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c NoExtCon)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtCon)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c NoExtCon)
dataTypeOf :: NoExtCon -&gt; DataType
$cdataTypeOf :: NoExtCon -&gt; DataType
toConstr :: NoExtCon -&gt; Constr
$ctoConstr :: NoExtCon -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtCon
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c NoExtCon
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; NoExtCon -&gt; c NoExtCon
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; NoExtCon -&gt; c NoExtCon
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680875650"><span id="local-6989586621680875652"><span class="annot"><span class="annottext">NoExtCon -&gt; NoExtCon -&gt; Bool
(NoExtCon -&gt; NoExtCon -&gt; Bool)
-&gt; (NoExtCon -&gt; NoExtCon -&gt; Bool) -&gt; Eq NoExtCon
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: NoExtCon -&gt; NoExtCon -&gt; Bool
$c/= :: NoExtCon -&gt; NoExtCon -&gt; Bool
== :: NoExtCon -&gt; NoExtCon -&gt; Bool
$c== :: NoExtCon -&gt; NoExtCon -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680875634"><span id="local-6989586621680875636"><span id="local-6989586621680875638"><span id="local-6989586621680875640"><span id="local-6989586621680875642"><span id="local-6989586621680875644"><span id="local-6989586621680875646"><span class="annot"><span class="annottext">Eq NoExtCon
Eq NoExtCon
-&gt; (NoExtCon -&gt; NoExtCon -&gt; Ordering)
-&gt; (NoExtCon -&gt; NoExtCon -&gt; Bool)
-&gt; (NoExtCon -&gt; NoExtCon -&gt; Bool)
-&gt; (NoExtCon -&gt; NoExtCon -&gt; Bool)
-&gt; (NoExtCon -&gt; NoExtCon -&gt; Bool)
-&gt; (NoExtCon -&gt; NoExtCon -&gt; NoExtCon)
-&gt; (NoExtCon -&gt; NoExtCon -&gt; NoExtCon)
-&gt; Ord NoExtCon
NoExtCon -&gt; NoExtCon -&gt; Bool
NoExtCon -&gt; NoExtCon -&gt; Ordering
NoExtCon -&gt; NoExtCon -&gt; NoExtCon
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: NoExtCon -&gt; NoExtCon -&gt; NoExtCon
$cmin :: NoExtCon -&gt; NoExtCon -&gt; NoExtCon
max :: NoExtCon -&gt; NoExtCon -&gt; NoExtCon
$cmax :: NoExtCon -&gt; NoExtCon -&gt; NoExtCon
&gt;= :: NoExtCon -&gt; NoExtCon -&gt; Bool
$c&gt;= :: NoExtCon -&gt; NoExtCon -&gt; Bool
&gt; :: NoExtCon -&gt; NoExtCon -&gt; Bool
$c&gt; :: NoExtCon -&gt; NoExtCon -&gt; Bool
&lt;= :: NoExtCon -&gt; NoExtCon -&gt; Bool
$c&lt;= :: NoExtCon -&gt; NoExtCon -&gt; Bool
&lt; :: NoExtCon -&gt; NoExtCon -&gt; Bool
$c&lt; :: NoExtCon -&gt; NoExtCon -&gt; Bool
compare :: NoExtCon -&gt; NoExtCon -&gt; Ordering
$ccompare :: NoExtCon -&gt; NoExtCon -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-161"></span><span>
</span><span id="line-162"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680875631"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoExtCon"><span class="hs-identifier hs-type">NoExtCon</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-163"></span><span>  </span><span id="local-6989586621680875630"><span class="annot"><span class="annottext">ppr :: NoExtCon -&gt; SDoc
</span><a href="#local-6989586621680875630"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NoExtCon -&gt; SDoc
forall a. NoExtCon -&gt; a
</span><a href="GHC.Hs.Extension.html#noExtCon"><span class="hs-identifier hs-var">noExtCon</span></a></span><span>
</span><span id="line-164"></span><span>
</span><span id="line-165"></span><span class="hs-comment">-- | Eliminate a 'NoExtCon'. Much like 'Data.Void.absurd'.</span><span>
</span><span id="line-166"></span><span id="local-6989586621680875878"><span class="annot"><a href="GHC.Hs.Extension.html#noExtCon"><span class="hs-identifier hs-type">noExtCon</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoExtCon"><span class="hs-identifier hs-type">NoExtCon</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680875878"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-167"></span><span id="noExtCon"><span class="annot"><span class="annottext">noExtCon :: forall a. NoExtCon -&gt; a
</span><a href="GHC.Hs.Extension.html#noExtCon"><span class="hs-identifier hs-var hs-var">noExtCon</span></a></span></span><span> </span><span id="local-6989586621680875628"><span class="annot"><span class="annottext">NoExtCon
</span><a href="#local-6989586621680875628"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">NoExtCon
</span><a href="#local-6989586621680875628"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span>
</span><span id="line-168"></span><span>
</span><span id="line-169"></span><span class="hs-comment">-- | GHC's L prefixed variants wrap their vanilla variant in this type family,</span><span>
</span><span id="line-170"></span><span class="hs-comment">-- to add 'SrcLoc' info via 'Located'. Other passes than 'GhcPass' not</span><span>
</span><span id="line-171"></span><span class="hs-comment">-- interested in location information can define this instance as @f p@.</span><span>
</span><span id="line-172"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRec"><span class="annot"><a href="GHC.Hs.Extension.html#XRec"><span class="hs-identifier hs-var">XRec</span></a></span></span><span> </span><span id="local-6989586621680875626"><span class="annot"><a href="#local-6989586621680875626"><span class="hs-identifier hs-type">p</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680875625"><span class="annot"><a href="#local-6989586621680875625"><span class="hs-identifier hs-type">f</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Type</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Type</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680875624"><span class="annot"><a href="#local-6989586621680875624"><span class="hs-identifier hs-type">r</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="#local-6989586621680875624"><span class="hs-identifier hs-type">r</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680875626"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875625"><span class="hs-identifier hs-type">f</span></a></span><span>
</span><span id="line-173"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">instance</span><span> </span><span id="XRec"><span class="annot"><a href="GHC.Hs.Extension.html#XRec"><span class="hs-identifier hs-var">XRec</span></a></span></span><span> </span><span id="local-6989586621680875622"><span id="local-6989586621680875623"><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875623"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621680875622"><span class="hs-identifier hs-type">f</span></a></span></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680875622"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875623"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span>
</span><span id="line-175"></span><span class="hs-comment">{-
Note [NoExtCon and strict fields]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Currently, any unused TTG extension constructor will generally look like the
following:

  type instance XXHsDecl (GhcPass _) = NoExtCon
  data HsDecl p
    = ...
    | XHsDecl !(XXHsDecl p)

The field of type `XXHsDecl p` is strict for a good reason: it allows the
pattern-match coverage checker to conclude that any matches against XHsDecl
are unreachable whenever `p ~ GhcPass _`. To see why this is the case, consider
the following function which consumes an HsDecl:

  ex :: HsDecl GhcPs -&gt; HsDecl GhcRn
  ...
  ex (XHsDecl nec) = noExtCon nec

Because `p` equals GhcPs (i.e., GhcPass 'Parsed), XHsDecl's field has the type
NoExtCon. But since (1) the field is strict and (2) NoExtCon is an empty data
type, there is no possible way to reach the right-hand side of the XHsDecl
case. As a result, the coverage checker concludes that the XHsDecl case is
inaccessible, so it can be removed.
(See Note [Strict argument type constraints] in GHC.HsToCore.PmCheck.Oracle for
more on how this works.)

Bottom line: if you add a TTG extension constructor that uses NoExtCon, make
sure that any uses of it as a field are strict.
-}</span><span>
</span><span id="line-206"></span><span>
</span><span id="line-207"></span><span class="hs-comment">-- | Used as a data type index for the hsSyn AST; also serves</span><span>
</span><span id="line-208"></span><span class="hs-comment">-- as a singleton type for Pass</span><span>
</span><span id="line-209"></span><span class="hs-keyword">data</span><span> </span><span id="GhcPass"><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-var">GhcPass</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680875621"><span class="annot"><a href="#local-6989586621680875621"><span class="hs-identifier hs-type">c</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#Pass"><span class="hs-identifier hs-type">Pass</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-210"></span><span>  </span><span id="GhcPs"><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-var">GhcPs</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-type">GhcPs</span></a></span><span>
</span><span id="line-211"></span><span>  </span><span id="GhcRn"><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-var">GhcRn</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-type">GhcRn</span></a></span><span>
</span><span id="line-212"></span><span>  </span><span id="GhcTc"><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-var">GhcTc</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-type">GhcTc</span></a></span><span>
</span><span id="line-213"></span><span>
</span><span id="line-214"></span><span class="hs-comment">-- This really should never be entered, but the data-deriving machinery</span><span>
</span><span id="line-215"></span><span class="hs-comment">-- needs the instance to exist.</span><span>
</span><span id="line-216"></span><span id="local-6989586621680875876"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680875587"><span id="local-6989586621680875589"><span id="local-6989586621680875591"><span id="local-6989586621680875593"><span id="local-6989586621680875595"><span id="local-6989586621680875597"><span id="local-6989586621680875599"><span id="local-6989586621680875601"><span id="local-6989586621680875603"><span id="local-6989586621680875605"><span id="local-6989586621680875610"><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875876"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875876"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-217"></span><span>  </span><span id="local-6989586621680875586"><span class="annot"><span class="annottext">gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GhcPass p)
</span><a href="../../base/src/Data.Data.html#gunfold"><span class="hs-identifier hs-var hs-var hs-var hs-var">gunfold</span></a></span></span><span> </span><span class="annot"><span class="annottext">forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">forall r. r -&gt; c r
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Constr
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; c (GhcPass p)
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance Data GhcPass&quot;</span></span><span>
</span><span id="line-218"></span><span>  </span><span id="local-6989586621680875583"><span class="annot"><span class="annottext">toConstr :: GhcPass p -&gt; Constr
</span><a href="../../base/src/Data.Data.html#toConstr"><span class="hs-identifier hs-var hs-var hs-var hs-var">toConstr</span></a></span></span><span>  </span><span class="annot"><span class="annottext">GhcPass p
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Constr
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance Data GhcPass&quot;</span></span><span>
</span><span id="line-219"></span><span>  </span><span id="local-6989586621680875581"><span class="annot"><span class="annottext">dataTypeOf :: GhcPass p -&gt; DataType
</span><a href="../../base/src/Data.Data.html#dataTypeOf"><span class="hs-identifier hs-var hs-var hs-var hs-var">dataTypeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">GhcPass p
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; DataType
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;instance Data GhcPass&quot;</span></span></span><span>
</span><span id="line-220"></span><span>
</span><span id="line-221"></span><span class="hs-keyword">data</span><span> </span><span id="Pass"><span class="annot"><a href="GHC.Hs.Extension.html#Pass"><span class="hs-identifier hs-var">Pass</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Parsed"><span class="annot"><a href="GHC.Hs.Extension.html#Parsed"><span class="hs-identifier hs-var">Parsed</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="Renamed"><span class="annot"><a href="GHC.Hs.Extension.html#Renamed"><span class="hs-identifier hs-var">Renamed</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="Typechecked"><span class="annot"><a href="GHC.Hs.Extension.html#Typechecked"><span class="hs-identifier hs-var">Typechecked</span></a></span></span><span>
</span><span id="line-222"></span><span>         </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680875550"><span id="local-6989586621680875552"><span id="local-6989586621680875554"><span id="local-6989586621680875556"><span id="local-6989586621680875558"><span id="local-6989586621680875560"><span id="local-6989586621680875562"><span id="local-6989586621680875564"><span id="local-6989586621680875566"><span id="local-6989586621680875568"><span id="local-6989586621680875570"><span id="local-6989586621680875572"><span id="local-6989586621680875574"><span id="local-6989586621680875576"><span class="annot"><span class="annottext">Typeable Pass
Typeable Pass
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; Pass -&gt; c Pass)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c Pass)
-&gt; (Pass -&gt; Constr)
-&gt; (Pass -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c Pass))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c Pass))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; Pass -&gt; Pass)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass)
-&gt; Data Pass
Pass -&gt; DataType
Pass -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; Pass -&gt; Pass
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r
forall r r'.
(r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c Pass
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; Pass -&gt; c Pass
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c Pass)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c Pass)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; Pass -&gt; m Pass
gmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; u
$cgmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; Pass -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; Pass -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; Pass -&gt; Pass
$cgmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; Pass -&gt; Pass
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c Pass)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c Pass)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c Pass)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c Pass)
dataTypeOf :: Pass -&gt; DataType
$cdataTypeOf :: Pass -&gt; DataType
toConstr :: Pass -&gt; Constr
$ctoConstr :: Pass -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c Pass
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c Pass
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; Pass -&gt; c Pass
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; Pass -&gt; c Pass
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-223"></span><span>
</span><span id="line-224"></span><span class="hs-comment">-- Type synonyms as a shorthand for tagging</span><span>
</span><span id="line-225"></span><span class="hs-keyword">type</span><span> </span><span id="GhcPs"><span class="annot"><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-var">GhcPs</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Parsed"><span class="hs-identifier hs-type">Parsed</span></a></span><span>      </span><span class="hs-comment">-- Output of parser</span><span>
</span><span id="line-226"></span><span class="hs-keyword">type</span><span> </span><span id="GhcRn"><span class="annot"><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-var">GhcRn</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Renamed"><span class="hs-identifier hs-type">Renamed</span></a></span><span>     </span><span class="hs-comment">-- Output of renamer</span><span>
</span><span id="line-227"></span><span class="hs-keyword">type</span><span> </span><span id="GhcTc"><span class="annot"><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-var">GhcTc</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Typechecked"><span class="hs-identifier hs-type">Typechecked</span></a></span><span> </span><span class="hs-comment">-- Output of typechecker</span><span>
</span><span id="line-228"></span><span>
</span><span id="line-229"></span><span class="hs-comment">-- | Allows us to check what phase we're in at GHC's runtime.</span><span>
</span><span id="line-230"></span><span class="hs-comment">-- For example, this class allows us to write</span><span>
</span><span id="line-231"></span><span class="hs-comment">-- &gt;  f :: forall p. IsPass p =&gt; HsExpr (GhcPass p) -&gt; blah</span><span>
</span><span id="line-232"></span><span class="hs-comment">-- &gt;  f e = case ghcPass @p of</span><span>
</span><span id="line-233"></span><span class="hs-comment">-- &gt;          GhcPs -&gt;    ... in this RHS we have HsExpr GhcPs...</span><span>
</span><span id="line-234"></span><span class="hs-comment">-- &gt;          GhcRn -&gt;    ... in this RHS we have HsExpr GhcRn...</span><span>
</span><span id="line-235"></span><span class="hs-comment">-- &gt;          GhcTc -&gt;    ... in this RHS we have HsExpr GhcTc...</span><span>
</span><span id="line-236"></span><span class="hs-comment">-- which is very useful, for example, when pretty-printing.</span><span>
</span><span id="line-237"></span><span class="hs-comment">-- See Note [IsPass].</span><span>
</span><span id="line-238"></span><span class="hs-keyword">class</span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-type">NoGhcTcPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-type">NoGhcTcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875873"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="hs-operator hs-type">~</span></span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-type">NoGhcTcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875873"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-239"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-type">NoGhcTcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875873"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-240"></span><span>      </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span id="IsPass"><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-var">IsPass</span></a></span></span><span> </span><span id="local-6989586621680875873"><span class="annot"><a href="#local-6989586621680875873"><span class="hs-identifier hs-type">p</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-241"></span><span>  </span><span id="ghcPass"><span class="annot"><a href="GHC.Hs.Extension.html#ghcPass"><span class="hs-identifier hs-type">ghcPass</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875873"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-242"></span><span>
</span><span id="line-243"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Parsed"><span class="hs-identifier hs-type">Parsed</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-244"></span><span>  </span><span id="local-6989586621680875537"><span class="annot"><span class="annottext">ghcPass :: GhcPass 'Parsed
</span><a href="#local-6989586621680875537"><span class="hs-identifier hs-var hs-var hs-var hs-var">ghcPass</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GhcPass 'Parsed
</span><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-var">GhcPs</span></a></span><span>
</span><span id="line-245"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Renamed"><span class="hs-identifier hs-type">Renamed</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-246"></span><span>  </span><span id="local-6989586621680875528"><span class="annot"><span class="annottext">ghcPass :: GhcPass 'Renamed
</span><a href="#local-6989586621680875528"><span class="hs-identifier hs-var hs-var hs-var hs-var">ghcPass</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GhcPass 'Renamed
</span><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-var">GhcRn</span></a></span><span>
</span><span id="line-247"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Typechecked"><span class="hs-identifier hs-type">Typechecked</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-248"></span><span>  </span><span id="local-6989586621680875519"><span class="annot"><span class="annottext">ghcPass :: GhcPass 'Typechecked
</span><a href="#local-6989586621680875519"><span class="hs-identifier hs-var hs-var hs-var hs-var">ghcPass</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GhcPass 'Typechecked
</span><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-var">GhcTc</span></a></span><span>
</span><span id="line-249"></span><span>
</span><span id="line-250"></span><span class="hs-comment">-- | Maps the &quot;normal&quot; id type for a given pass</span><span>
</span><span id="line-251"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="IdP"><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-var">IdP</span></a></span></span><span> </span><span id="local-6989586621680875517"><span class="annot"><a href="#local-6989586621680875517"><span class="hs-identifier hs-type">p</span></a></span></span><span>
</span><span id="line-252"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">instance</span><span> </span><span id="IdP"><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-var">IdP</span></a></span></span><span> </span><span id="local-6989586621680875516"><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875516"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IdGhcP"><span class="hs-identifier hs-type">IdGhcP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875516"><span class="hs-identifier hs-type">p</span></a></span><span>
</span><span id="line-253"></span><span>
</span><span id="line-254"></span><span class="hs-comment">-- | Maps the &quot;normal&quot; id type for a given GHC pass</span><span>
</span><span id="line-255"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="IdGhcP"><span class="annot"><a href="GHC.Hs.Extension.html#IdGhcP"><span class="hs-identifier hs-var">IdGhcP</span></a></span></span><span> </span><span id="local-6989586621680875514"><span class="annot"><a href="#local-6989586621680875514"><span class="hs-identifier hs-type">pass</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-256"></span><span>  </span><span id="IdGhcP"><span class="annot"><a href="GHC.Hs.Extension.html#IdGhcP"><span class="hs-identifier hs-var">IdGhcP</span></a></span></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Parsed"><span class="hs-identifier hs-type">Parsed</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.Name.Reader.html#RdrName"><span class="hs-identifier hs-type">RdrName</span></a></span><span>
</span><span id="line-257"></span><span>  </span><span id="IdGhcP"><span class="annot"><a href="GHC.Hs.Extension.html#IdGhcP"><span class="hs-identifier hs-var">IdGhcP</span></a></span></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Renamed"><span class="hs-identifier hs-type">Renamed</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#Name"><span class="hs-identifier hs-type">Name</span></a></span><span>
</span><span id="line-258"></span><span>  </span><span id="IdGhcP"><span class="annot"><a href="GHC.Hs.Extension.html#IdGhcP"><span class="hs-identifier hs-var">IdGhcP</span></a></span></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Typechecked"><span class="hs-identifier hs-type">Typechecked</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span>
</span><span id="line-259"></span><span>
</span><span id="line-260"></span><span class="hs-keyword">type</span><span> </span><span id="LIdP"><span class="annot"><a href="GHC.Hs.Extension.html#LIdP"><span class="hs-identifier hs-var">LIdP</span></a></span></span><span> </span><span id="local-6989586621680875509"><span class="annot"><a href="#local-6989586621680875509"><span class="hs-identifier hs-type">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdP"><span class="hs-identifier hs-type">IdP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875509"><span class="hs-identifier hs-type">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-261"></span><span>
</span><span id="line-262"></span><span class="hs-comment">-- | Marks that a field uses the GhcRn variant even when the pass</span><span>
</span><span id="line-263"></span><span class="hs-comment">-- parameter is GhcTc. Useful for storing HsTypes in GHC.Hs.Exprs, say, because</span><span>
</span><span id="line-264"></span><span class="hs-comment">-- HsType GhcTc should never occur.</span><span>
</span><span id="line-265"></span><span class="hs-comment">-- See Note [NoGhcTc]</span><span>
</span><span id="line-266"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="NoGhcTc"><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTc"><span class="hs-identifier hs-var">NoGhcTc</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680875507"><span class="annot"><a href="#local-6989586621680875507"><span class="hs-identifier hs-type">p</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Type</span></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-267"></span><span>    </span><span class="hs-comment">-- this way, GHC can figure out that the result is a GhcPass</span><span>
</span><span id="line-268"></span><span>  </span><span id="NoGhcTc"><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTc"><span class="hs-identifier hs-var">NoGhcTc</span></a></span></span><span> </span><span id="local-6989586621680875506"><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875506"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#GhcPass"><span class="hs-identifier hs-type">GhcPass</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-type">NoGhcTcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875506"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-269"></span><span>  </span><span id="NoGhcTc"><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTc"><span class="hs-identifier hs-var">NoGhcTc</span></a></span></span><span> </span><span id="local-6989586621680875505"><span class="annot"><a href="#local-6989586621680875505"><span class="hs-identifier hs-type hs-type">other</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="#local-6989586621680875505"><span class="hs-identifier hs-type">other</span></a></span><span>
</span><span id="line-270"></span><span>
</span><span id="line-271"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="NoGhcTcPass"><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-var">NoGhcTcPass</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680875504"><span class="annot"><a href="#local-6989586621680875504"><span class="hs-identifier hs-type">p</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#Pass"><span class="hs-identifier hs-type">Pass</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#Pass"><span class="hs-identifier hs-type">Pass</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-272"></span><span>  </span><span id="NoGhcTcPass"><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-var">NoGhcTcPass</span></a></span></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Typechecked"><span class="hs-identifier hs-type">Typechecked</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Renamed"><span class="hs-identifier hs-type">Renamed</span></a></span><span>
</span><span id="line-273"></span><span>  </span><span id="NoGhcTcPass"><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-var">NoGhcTcPass</span></a></span></span><span> </span><span id="local-6989586621680875503"><span class="annot"><a href="#local-6989586621680875503"><span class="hs-identifier hs-type hs-type">other</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="#local-6989586621680875503"><span class="hs-identifier hs-type">other</span></a></span><span>
</span><span id="line-274"></span><span>
</span><span id="line-275"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-276"></span><span class="hs-comment">-- Type families for the HsBinds extension points</span><span>
</span><span id="line-277"></span><span>
</span><span id="line-278"></span><span class="hs-comment">-- HsLocalBindsLR type families</span><span>
</span><span id="line-279"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsValBinds"><span class="annot"><a href="GHC.Hs.Extension.html#XHsValBinds"><span class="hs-identifier hs-var">XHsValBinds</span></a></span></span><span>      </span><span id="local-6989586621680875501"><span class="annot"><a href="#local-6989586621680875501"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875500"><span class="annot"><a href="#local-6989586621680875500"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-280"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsIPBinds"><span class="annot"><a href="GHC.Hs.Extension.html#XHsIPBinds"><span class="hs-identifier hs-var">XHsIPBinds</span></a></span></span><span>       </span><span id="local-6989586621680875498"><span class="annot"><a href="#local-6989586621680875498"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875497"><span class="annot"><a href="#local-6989586621680875497"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-281"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XEmptyLocalBinds"><span class="annot"><a href="GHC.Hs.Extension.html#XEmptyLocalBinds"><span class="hs-identifier hs-var">XEmptyLocalBinds</span></a></span></span><span> </span><span id="local-6989586621680875495"><span class="annot"><a href="#local-6989586621680875495"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875494"><span class="annot"><a href="#local-6989586621680875494"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-282"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsLocalBindsLR"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsLocalBindsLR"><span class="hs-identifier hs-var">XXHsLocalBindsLR</span></a></span></span><span> </span><span id="local-6989586621680875492"><span class="annot"><a href="#local-6989586621680875492"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875491"><span class="annot"><a href="#local-6989586621680875491"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-283"></span><span>
</span><span id="line-284"></span><span class="hs-comment">-- ValBindsLR type families</span><span>
</span><span id="line-285"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XValBinds"><span class="annot"><a href="GHC.Hs.Extension.html#XValBinds"><span class="hs-identifier hs-var">XValBinds</span></a></span></span><span>    </span><span id="local-6989586621680875489"><span class="annot"><a href="#local-6989586621680875489"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875488"><span class="annot"><a href="#local-6989586621680875488"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-286"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXValBindsLR"><span class="annot"><a href="GHC.Hs.Extension.html#XXValBindsLR"><span class="hs-identifier hs-var">XXValBindsLR</span></a></span></span><span> </span><span id="local-6989586621680875486"><span class="annot"><a href="#local-6989586621680875486"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875485"><span class="annot"><a href="#local-6989586621680875485"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-287"></span><span>
</span><span id="line-288"></span><span class="hs-comment">-- HsBindsLR type families</span><span>
</span><span id="line-289"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XFunBind"><span class="annot"><a href="GHC.Hs.Extension.html#XFunBind"><span class="hs-identifier hs-var">XFunBind</span></a></span></span><span>    </span><span id="local-6989586621680875483"><span class="annot"><a href="#local-6989586621680875483"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875482"><span class="annot"><a href="#local-6989586621680875482"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-290"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPatBind"><span class="annot"><a href="GHC.Hs.Extension.html#XPatBind"><span class="hs-identifier hs-var">XPatBind</span></a></span></span><span>    </span><span id="local-6989586621680875480"><span class="annot"><a href="#local-6989586621680875480"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875479"><span class="annot"><a href="#local-6989586621680875479"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-291"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XVarBind"><span class="annot"><a href="GHC.Hs.Extension.html#XVarBind"><span class="hs-identifier hs-var">XVarBind</span></a></span></span><span>    </span><span id="local-6989586621680875477"><span class="annot"><a href="#local-6989586621680875477"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875476"><span class="annot"><a href="#local-6989586621680875476"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-292"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XAbsBinds"><span class="annot"><a href="GHC.Hs.Extension.html#XAbsBinds"><span class="hs-identifier hs-var">XAbsBinds</span></a></span></span><span>   </span><span id="local-6989586621680875474"><span class="annot"><a href="#local-6989586621680875474"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875473"><span class="annot"><a href="#local-6989586621680875473"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-293"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPatSynBind"><span class="annot"><a href="GHC.Hs.Extension.html#XPatSynBind"><span class="hs-identifier hs-var">XPatSynBind</span></a></span></span><span> </span><span id="local-6989586621680875471"><span class="annot"><a href="#local-6989586621680875471"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875470"><span class="annot"><a href="#local-6989586621680875470"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-294"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsBindsLR"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsBindsLR"><span class="hs-identifier hs-var">XXHsBindsLR</span></a></span></span><span> </span><span id="local-6989586621680875468"><span class="annot"><a href="#local-6989586621680875468"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875467"><span class="annot"><a href="#local-6989586621680875467"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-295"></span><span>
</span><span id="line-296"></span><span class="hs-comment">-- ABExport type families</span><span>
</span><span id="line-297"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XABE"><span class="annot"><a href="GHC.Hs.Extension.html#XABE"><span class="hs-identifier hs-var">XABE</span></a></span></span><span> </span><span id="local-6989586621680875465"><span class="annot"><a href="#local-6989586621680875465"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-298"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXABExport"><span class="annot"><a href="GHC.Hs.Extension.html#XXABExport"><span class="hs-identifier hs-var">XXABExport</span></a></span></span><span> </span><span id="local-6989586621680875463"><span class="annot"><a href="#local-6989586621680875463"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-299"></span><span>
</span><span id="line-300"></span><span class="hs-comment">-- PatSynBind type families</span><span>
</span><span id="line-301"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPSB"><span class="annot"><a href="GHC.Hs.Extension.html#XPSB"><span class="hs-identifier hs-var">XPSB</span></a></span></span><span> </span><span id="local-6989586621680875461"><span class="annot"><a href="#local-6989586621680875461"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875460"><span class="annot"><a href="#local-6989586621680875460"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-302"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXPatSynBind"><span class="annot"><a href="GHC.Hs.Extension.html#XXPatSynBind"><span class="hs-identifier hs-var">XXPatSynBind</span></a></span></span><span> </span><span id="local-6989586621680875458"><span class="annot"><a href="#local-6989586621680875458"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875457"><span class="annot"><a href="#local-6989586621680875457"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-303"></span><span>
</span><span id="line-304"></span><span class="hs-comment">-- HsIPBinds type families</span><span>
</span><span id="line-305"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIPBinds"><span class="annot"><a href="GHC.Hs.Extension.html#XIPBinds"><span class="hs-identifier hs-var">XIPBinds</span></a></span></span><span>    </span><span id="local-6989586621680875455"><span class="annot"><a href="#local-6989586621680875455"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-306"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsIPBinds"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsIPBinds"><span class="hs-identifier hs-var">XXHsIPBinds</span></a></span></span><span> </span><span id="local-6989586621680875453"><span class="annot"><a href="#local-6989586621680875453"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-307"></span><span>
</span><span id="line-308"></span><span class="hs-comment">-- IPBind type families</span><span>
</span><span id="line-309"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCIPBind"><span class="annot"><a href="GHC.Hs.Extension.html#XCIPBind"><span class="hs-identifier hs-var">XCIPBind</span></a></span></span><span> </span><span id="local-6989586621680875451"><span class="annot"><a href="#local-6989586621680875451"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-310"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXIPBind"><span class="annot"><a href="GHC.Hs.Extension.html#XXIPBind"><span class="hs-identifier hs-var">XXIPBind</span></a></span></span><span> </span><span id="local-6989586621680875449"><span class="annot"><a href="#local-6989586621680875449"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-311"></span><span>
</span><span id="line-312"></span><span class="hs-comment">-- Sig type families</span><span>
</span><span id="line-313"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTypeSig"><span class="annot"><a href="GHC.Hs.Extension.html#XTypeSig"><span class="hs-identifier hs-var">XTypeSig</span></a></span></span><span>          </span><span id="local-6989586621680875447"><span class="annot"><a href="#local-6989586621680875447"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-314"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPatSynSig"><span class="annot"><a href="GHC.Hs.Extension.html#XPatSynSig"><span class="hs-identifier hs-var">XPatSynSig</span></a></span></span><span>        </span><span id="local-6989586621680875445"><span class="annot"><a href="#local-6989586621680875445"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-315"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XClassOpSig"><span class="annot"><a href="GHC.Hs.Extension.html#XClassOpSig"><span class="hs-identifier hs-var">XClassOpSig</span></a></span></span><span>       </span><span id="local-6989586621680875443"><span class="annot"><a href="#local-6989586621680875443"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-316"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIdSig"><span class="annot"><a href="GHC.Hs.Extension.html#XIdSig"><span class="hs-identifier hs-var">XIdSig</span></a></span></span><span>            </span><span id="local-6989586621680875441"><span class="annot"><a href="#local-6989586621680875441"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-317"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XFixSig"><span class="annot"><a href="GHC.Hs.Extension.html#XFixSig"><span class="hs-identifier hs-var">XFixSig</span></a></span></span><span>           </span><span id="local-6989586621680875439"><span class="annot"><a href="#local-6989586621680875439"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-318"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XInlineSig"><span class="annot"><a href="GHC.Hs.Extension.html#XInlineSig"><span class="hs-identifier hs-var">XInlineSig</span></a></span></span><span>        </span><span id="local-6989586621680875437"><span class="annot"><a href="#local-6989586621680875437"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-319"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSpecSig"><span class="annot"><a href="GHC.Hs.Extension.html#XSpecSig"><span class="hs-identifier hs-var">XSpecSig</span></a></span></span><span>          </span><span id="local-6989586621680875435"><span class="annot"><a href="#local-6989586621680875435"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-320"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSpecInstSig"><span class="annot"><a href="GHC.Hs.Extension.html#XSpecInstSig"><span class="hs-identifier hs-var">XSpecInstSig</span></a></span></span><span>      </span><span id="local-6989586621680875433"><span class="annot"><a href="#local-6989586621680875433"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-321"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XMinimalSig"><span class="annot"><a href="GHC.Hs.Extension.html#XMinimalSig"><span class="hs-identifier hs-var">XMinimalSig</span></a></span></span><span>       </span><span id="local-6989586621680875431"><span class="annot"><a href="#local-6989586621680875431"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-322"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSCCFunSig"><span class="annot"><a href="GHC.Hs.Extension.html#XSCCFunSig"><span class="hs-identifier hs-var">XSCCFunSig</span></a></span></span><span>        </span><span id="local-6989586621680875429"><span class="annot"><a href="#local-6989586621680875429"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-323"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCompleteMatchSig"><span class="annot"><a href="GHC.Hs.Extension.html#XCompleteMatchSig"><span class="hs-identifier hs-var">XCompleteMatchSig</span></a></span></span><span> </span><span id="local-6989586621680875427"><span class="annot"><a href="#local-6989586621680875427"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-324"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXSig"><span class="annot"><a href="GHC.Hs.Extension.html#XXSig"><span class="hs-identifier hs-var">XXSig</span></a></span></span><span>             </span><span id="local-6989586621680875425"><span class="annot"><a href="#local-6989586621680875425"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-325"></span><span>
</span><span id="line-326"></span><span class="hs-comment">-- FixitySig type families</span><span>
</span><span id="line-327"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XFixitySig"><span class="annot"><a href="GHC.Hs.Extension.html#XFixitySig"><span class="hs-identifier hs-var">XFixitySig</span></a></span></span><span>          </span><span id="local-6989586621680875423"><span class="annot"><a href="#local-6989586621680875423"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-328"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXFixitySig"><span class="annot"><a href="GHC.Hs.Extension.html#XXFixitySig"><span class="hs-identifier hs-var">XXFixitySig</span></a></span></span><span>         </span><span id="local-6989586621680875421"><span class="annot"><a href="#local-6989586621680875421"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-329"></span><span>
</span><span id="line-330"></span><span class="hs-comment">-- StandaloneKindSig type families</span><span>
</span><span id="line-331"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XStandaloneKindSig"><span class="annot"><a href="GHC.Hs.Extension.html#XStandaloneKindSig"><span class="hs-identifier hs-var">XStandaloneKindSig</span></a></span></span><span>  </span><span id="local-6989586621680875419"><span class="annot"><a href="#local-6989586621680875419"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-332"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXStandaloneKindSig"><span class="annot"><a href="GHC.Hs.Extension.html#XXStandaloneKindSig"><span class="hs-identifier hs-var">XXStandaloneKindSig</span></a></span></span><span> </span><span id="local-6989586621680875417"><span class="annot"><a href="#local-6989586621680875417"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-333"></span><span>
</span><span id="line-334"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-335"></span><span class="hs-comment">-- Type families for the HsDecls extension points</span><span>
</span><span id="line-336"></span><span>
</span><span id="line-337"></span><span class="hs-comment">-- HsDecl type families</span><span>
</span><span id="line-338"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTyClD"><span class="annot"><a href="GHC.Hs.Extension.html#XTyClD"><span class="hs-identifier hs-var">XTyClD</span></a></span></span><span>       </span><span id="local-6989586621680875415"><span class="annot"><a href="#local-6989586621680875415"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-339"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XInstD"><span class="annot"><a href="GHC.Hs.Extension.html#XInstD"><span class="hs-identifier hs-var">XInstD</span></a></span></span><span>       </span><span id="local-6989586621680875413"><span class="annot"><a href="#local-6989586621680875413"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-340"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDerivD"><span class="annot"><a href="GHC.Hs.Extension.html#XDerivD"><span class="hs-identifier hs-var">XDerivD</span></a></span></span><span>      </span><span id="local-6989586621680875411"><span class="annot"><a href="#local-6989586621680875411"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-341"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XValD"><span class="annot"><a href="GHC.Hs.Extension.html#XValD"><span class="hs-identifier hs-var">XValD</span></a></span></span><span>        </span><span id="local-6989586621680875409"><span class="annot"><a href="#local-6989586621680875409"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-342"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSigD"><span class="annot"><a href="GHC.Hs.Extension.html#XSigD"><span class="hs-identifier hs-var">XSigD</span></a></span></span><span>        </span><span id="local-6989586621680875407"><span class="annot"><a href="#local-6989586621680875407"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-343"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XKindSigD"><span class="annot"><a href="GHC.Hs.Extension.html#XKindSigD"><span class="hs-identifier hs-var">XKindSigD</span></a></span></span><span>    </span><span id="local-6989586621680875405"><span class="annot"><a href="#local-6989586621680875405"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-344"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDefD"><span class="annot"><a href="GHC.Hs.Extension.html#XDefD"><span class="hs-identifier hs-var">XDefD</span></a></span></span><span>        </span><span id="local-6989586621680875403"><span class="annot"><a href="#local-6989586621680875403"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-345"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XForD"><span class="annot"><a href="GHC.Hs.Extension.html#XForD"><span class="hs-identifier hs-var">XForD</span></a></span></span><span>        </span><span id="local-6989586621680875401"><span class="annot"><a href="#local-6989586621680875401"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-346"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XWarningD"><span class="annot"><a href="GHC.Hs.Extension.html#XWarningD"><span class="hs-identifier hs-var">XWarningD</span></a></span></span><span>    </span><span id="local-6989586621680875399"><span class="annot"><a href="#local-6989586621680875399"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-347"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XAnnD"><span class="annot"><a href="GHC.Hs.Extension.html#XAnnD"><span class="hs-identifier hs-var">XAnnD</span></a></span></span><span>        </span><span id="local-6989586621680875397"><span class="annot"><a href="#local-6989586621680875397"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-348"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRuleD"><span class="annot"><a href="GHC.Hs.Extension.html#XRuleD"><span class="hs-identifier hs-var">XRuleD</span></a></span></span><span>       </span><span id="local-6989586621680875395"><span class="annot"><a href="#local-6989586621680875395"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-349"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSpliceD"><span class="annot"><a href="GHC.Hs.Extension.html#XSpliceD"><span class="hs-identifier hs-var">XSpliceD</span></a></span></span><span>     </span><span id="local-6989586621680875393"><span class="annot"><a href="#local-6989586621680875393"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-350"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDocD"><span class="annot"><a href="GHC.Hs.Extension.html#XDocD"><span class="hs-identifier hs-var">XDocD</span></a></span></span><span>        </span><span id="local-6989586621680875391"><span class="annot"><a href="#local-6989586621680875391"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-351"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRoleAnnotD"><span class="annot"><a href="GHC.Hs.Extension.html#XRoleAnnotD"><span class="hs-identifier hs-var">XRoleAnnotD</span></a></span></span><span>  </span><span id="local-6989586621680875389"><span class="annot"><a href="#local-6989586621680875389"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-352"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsDecl"><span class="hs-identifier hs-var">XXHsDecl</span></a></span></span><span>     </span><span id="local-6989586621680875387"><span class="annot"><a href="#local-6989586621680875387"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-353"></span><span>
</span><span id="line-354"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-355"></span><span class="hs-comment">-- HsGroup type families</span><span>
</span><span id="line-356"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCHsGroup"><span class="annot"><a href="GHC.Hs.Extension.html#XCHsGroup"><span class="hs-identifier hs-var">XCHsGroup</span></a></span></span><span>      </span><span id="local-6989586621680875385"><span class="annot"><a href="#local-6989586621680875385"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-357"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsGroup"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsGroup"><span class="hs-identifier hs-var">XXHsGroup</span></a></span></span><span>      </span><span id="local-6989586621680875383"><span class="annot"><a href="#local-6989586621680875383"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-358"></span><span>
</span><span id="line-359"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-360"></span><span class="hs-comment">-- SpliceDecl type families</span><span>
</span><span id="line-361"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSpliceDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XSpliceDecl"><span class="hs-identifier hs-var">XSpliceDecl</span></a></span></span><span>       </span><span id="local-6989586621680875381"><span class="annot"><a href="#local-6989586621680875381"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-362"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXSpliceDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXSpliceDecl"><span class="hs-identifier hs-var">XXSpliceDecl</span></a></span></span><span>      </span><span id="local-6989586621680875379"><span class="annot"><a href="#local-6989586621680875379"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-363"></span><span>
</span><span id="line-364"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-365"></span><span class="hs-comment">-- TyClDecl type families</span><span>
</span><span id="line-366"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XFamDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XFamDecl"><span class="hs-identifier hs-var">XFamDecl</span></a></span></span><span>       </span><span id="local-6989586621680875377"><span class="annot"><a href="#local-6989586621680875377"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-367"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSynDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XSynDecl"><span class="hs-identifier hs-var">XSynDecl</span></a></span></span><span>       </span><span id="local-6989586621680875375"><span class="annot"><a href="#local-6989586621680875375"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-368"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDataDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XDataDecl"><span class="hs-identifier hs-var">XDataDecl</span></a></span></span><span>      </span><span id="local-6989586621680875373"><span class="annot"><a href="#local-6989586621680875373"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-369"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XClassDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XClassDecl"><span class="hs-identifier hs-var">XClassDecl</span></a></span></span><span>     </span><span id="local-6989586621680875371"><span class="annot"><a href="#local-6989586621680875371"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-370"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXTyClDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXTyClDecl"><span class="hs-identifier hs-var">XXTyClDecl</span></a></span></span><span>     </span><span id="local-6989586621680875369"><span class="annot"><a href="#local-6989586621680875369"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-371"></span><span>
</span><span id="line-372"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-373"></span><span class="hs-comment">-- TyClGroup type families</span><span>
</span><span id="line-374"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCTyClGroup"><span class="annot"><a href="GHC.Hs.Extension.html#XCTyClGroup"><span class="hs-identifier hs-var">XCTyClGroup</span></a></span></span><span>      </span><span id="local-6989586621680875367"><span class="annot"><a href="#local-6989586621680875367"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-375"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXTyClGroup"><span class="annot"><a href="GHC.Hs.Extension.html#XXTyClGroup"><span class="hs-identifier hs-var">XXTyClGroup</span></a></span></span><span>      </span><span id="local-6989586621680875365"><span class="annot"><a href="#local-6989586621680875365"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-376"></span><span>
</span><span id="line-377"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-378"></span><span class="hs-comment">-- FamilyResultSig type families</span><span>
</span><span id="line-379"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XNoSig"><span class="annot"><a href="GHC.Hs.Extension.html#XNoSig"><span class="hs-identifier hs-var">XNoSig</span></a></span></span><span>            </span><span id="local-6989586621680875363"><span class="annot"><a href="#local-6989586621680875363"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-380"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCKindSig"><span class="annot"><a href="GHC.Hs.Extension.html#XCKindSig"><span class="hs-identifier hs-var">XCKindSig</span></a></span></span><span>         </span><span id="local-6989586621680875361"><span class="annot"><a href="#local-6989586621680875361"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span class="hs-comment">-- Clashes with XKindSig above</span><span>
</span><span id="line-381"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTyVarSig"><span class="annot"><a href="GHC.Hs.Extension.html#XTyVarSig"><span class="hs-identifier hs-var">XTyVarSig</span></a></span></span><span>         </span><span id="local-6989586621680875359"><span class="annot"><a href="#local-6989586621680875359"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-382"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXFamilyResultSig"><span class="annot"><a href="GHC.Hs.Extension.html#XXFamilyResultSig"><span class="hs-identifier hs-var">XXFamilyResultSig</span></a></span></span><span> </span><span id="local-6989586621680875357"><span class="annot"><a href="#local-6989586621680875357"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-383"></span><span>
</span><span id="line-384"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-385"></span><span class="hs-comment">-- FamilyDecl type families</span><span>
</span><span id="line-386"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCFamilyDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XCFamilyDecl"><span class="hs-identifier hs-var">XCFamilyDecl</span></a></span></span><span>      </span><span id="local-6989586621680875355"><span class="annot"><a href="#local-6989586621680875355"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-387"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXFamilyDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXFamilyDecl"><span class="hs-identifier hs-var">XXFamilyDecl</span></a></span></span><span>      </span><span id="local-6989586621680875353"><span class="annot"><a href="#local-6989586621680875353"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-388"></span><span>
</span><span id="line-389"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-390"></span><span class="hs-comment">-- HsDataDefn type families</span><span>
</span><span id="line-391"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCHsDataDefn"><span class="annot"><a href="GHC.Hs.Extension.html#XCHsDataDefn"><span class="hs-identifier hs-var">XCHsDataDefn</span></a></span></span><span>      </span><span id="local-6989586621680875351"><span class="annot"><a href="#local-6989586621680875351"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-392"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsDataDefn"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsDataDefn"><span class="hs-identifier hs-var">XXHsDataDefn</span></a></span></span><span>      </span><span id="local-6989586621680875349"><span class="annot"><a href="#local-6989586621680875349"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-393"></span><span>
</span><span id="line-394"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-395"></span><span class="hs-comment">-- HsDerivingClause type families</span><span>
</span><span id="line-396"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCHsDerivingClause"><span class="annot"><a href="GHC.Hs.Extension.html#XCHsDerivingClause"><span class="hs-identifier hs-var">XCHsDerivingClause</span></a></span></span><span>      </span><span id="local-6989586621680875347"><span class="annot"><a href="#local-6989586621680875347"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-397"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsDerivingClause"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsDerivingClause"><span class="hs-identifier hs-var">XXHsDerivingClause</span></a></span></span><span>      </span><span id="local-6989586621680875345"><span class="annot"><a href="#local-6989586621680875345"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-398"></span><span>
</span><span id="line-399"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-400"></span><span class="hs-comment">-- ConDecl type families</span><span>
</span><span id="line-401"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XConDeclGADT"><span class="annot"><a href="GHC.Hs.Extension.html#XConDeclGADT"><span class="hs-identifier hs-var">XConDeclGADT</span></a></span></span><span>   </span><span id="local-6989586621680875343"><span class="annot"><a href="#local-6989586621680875343"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-402"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XConDeclH98"><span class="annot"><a href="GHC.Hs.Extension.html#XConDeclH98"><span class="hs-identifier hs-var">XConDeclH98</span></a></span></span><span>    </span><span id="local-6989586621680875341"><span class="annot"><a href="#local-6989586621680875341"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-403"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXConDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXConDecl"><span class="hs-identifier hs-var">XXConDecl</span></a></span></span><span>      </span><span id="local-6989586621680875339"><span class="annot"><a href="#local-6989586621680875339"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-404"></span><span>
</span><span id="line-405"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-406"></span><span class="hs-comment">-- FamEqn type families</span><span>
</span><span id="line-407"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCFamEqn"><span class="annot"><a href="GHC.Hs.Extension.html#XCFamEqn"><span class="hs-identifier hs-var">XCFamEqn</span></a></span></span><span>      </span><span id="local-6989586621680875337"><span class="annot"><a href="#local-6989586621680875337"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875336"><span class="annot"><a href="#local-6989586621680875336"><span class="hs-identifier hs-type">r</span></a></span></span><span>
</span><span id="line-408"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXFamEqn"><span class="annot"><a href="GHC.Hs.Extension.html#XXFamEqn"><span class="hs-identifier hs-var">XXFamEqn</span></a></span></span><span>      </span><span id="local-6989586621680875334"><span class="annot"><a href="#local-6989586621680875334"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875333"><span class="annot"><a href="#local-6989586621680875333"><span class="hs-identifier hs-type">r</span></a></span></span><span>
</span><span id="line-409"></span><span>
</span><span id="line-410"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-411"></span><span class="hs-comment">-- ClsInstDecl type families</span><span>
</span><span id="line-412"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCClsInstDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XCClsInstDecl"><span class="hs-identifier hs-var">XCClsInstDecl</span></a></span></span><span>      </span><span id="local-6989586621680875331"><span class="annot"><a href="#local-6989586621680875331"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-413"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXClsInstDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXClsInstDecl"><span class="hs-identifier hs-var">XXClsInstDecl</span></a></span></span><span>      </span><span id="local-6989586621680875329"><span class="annot"><a href="#local-6989586621680875329"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-414"></span><span>
</span><span id="line-415"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-416"></span><span class="hs-comment">-- ClsInstDecl type families</span><span>
</span><span id="line-417"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XClsInstD"><span class="annot"><a href="GHC.Hs.Extension.html#XClsInstD"><span class="hs-identifier hs-var">XClsInstD</span></a></span></span><span>      </span><span id="local-6989586621680875327"><span class="annot"><a href="#local-6989586621680875327"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-418"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDataFamInstD"><span class="annot"><a href="GHC.Hs.Extension.html#XDataFamInstD"><span class="hs-identifier hs-var">XDataFamInstD</span></a></span></span><span>  </span><span id="local-6989586621680875325"><span class="annot"><a href="#local-6989586621680875325"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-419"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTyFamInstD"><span class="annot"><a href="GHC.Hs.Extension.html#XTyFamInstD"><span class="hs-identifier hs-var">XTyFamInstD</span></a></span></span><span>    </span><span id="local-6989586621680875323"><span class="annot"><a href="#local-6989586621680875323"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-420"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXInstDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXInstDecl"><span class="hs-identifier hs-var">XXInstDecl</span></a></span></span><span>     </span><span id="local-6989586621680875321"><span class="annot"><a href="#local-6989586621680875321"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-421"></span><span>
</span><span id="line-422"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-423"></span><span class="hs-comment">-- DerivDecl type families</span><span>
</span><span id="line-424"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCDerivDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XCDerivDecl"><span class="hs-identifier hs-var">XCDerivDecl</span></a></span></span><span>      </span><span id="local-6989586621680875319"><span class="annot"><a href="#local-6989586621680875319"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-425"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXDerivDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXDerivDecl"><span class="hs-identifier hs-var">XXDerivDecl</span></a></span></span><span>      </span><span id="local-6989586621680875317"><span class="annot"><a href="#local-6989586621680875317"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-426"></span><span>
</span><span id="line-427"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-428"></span><span class="hs-comment">-- DerivStrategy type family</span><span>
</span><span id="line-429"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XViaStrategy"><span class="annot"><a href="GHC.Hs.Extension.html#XViaStrategy"><span class="hs-identifier hs-var">XViaStrategy</span></a></span></span><span> </span><span id="local-6989586621680875315"><span class="annot"><a href="#local-6989586621680875315"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-430"></span><span>
</span><span id="line-431"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-432"></span><span class="hs-comment">-- DefaultDecl type families</span><span>
</span><span id="line-433"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCDefaultDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XCDefaultDecl"><span class="hs-identifier hs-var">XCDefaultDecl</span></a></span></span><span>      </span><span id="local-6989586621680875313"><span class="annot"><a href="#local-6989586621680875313"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-434"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXDefaultDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXDefaultDecl"><span class="hs-identifier hs-var">XXDefaultDecl</span></a></span></span><span>      </span><span id="local-6989586621680875311"><span class="annot"><a href="#local-6989586621680875311"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-435"></span><span>
</span><span id="line-436"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-437"></span><span class="hs-comment">-- DefaultDecl type families</span><span>
</span><span id="line-438"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XForeignImport"><span class="annot"><a href="GHC.Hs.Extension.html#XForeignImport"><span class="hs-identifier hs-var">XForeignImport</span></a></span></span><span>     </span><span id="local-6989586621680875309"><span class="annot"><a href="#local-6989586621680875309"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-439"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XForeignExport"><span class="annot"><a href="GHC.Hs.Extension.html#XForeignExport"><span class="hs-identifier hs-var">XForeignExport</span></a></span></span><span>     </span><span id="local-6989586621680875307"><span class="annot"><a href="#local-6989586621680875307"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-440"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXForeignDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXForeignDecl"><span class="hs-identifier hs-var">XXForeignDecl</span></a></span></span><span>      </span><span id="local-6989586621680875305"><span class="annot"><a href="#local-6989586621680875305"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-441"></span><span>
</span><span id="line-442"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-443"></span><span class="hs-comment">-- RuleDecls type families</span><span>
</span><span id="line-444"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCRuleDecls"><span class="annot"><a href="GHC.Hs.Extension.html#XCRuleDecls"><span class="hs-identifier hs-var">XCRuleDecls</span></a></span></span><span>      </span><span id="local-6989586621680875303"><span class="annot"><a href="#local-6989586621680875303"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-445"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXRuleDecls"><span class="annot"><a href="GHC.Hs.Extension.html#XXRuleDecls"><span class="hs-identifier hs-var">XXRuleDecls</span></a></span></span><span>      </span><span id="local-6989586621680875301"><span class="annot"><a href="#local-6989586621680875301"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-446"></span><span>
</span><span id="line-447"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-448"></span><span class="hs-comment">-- RuleDecl type families</span><span>
</span><span id="line-449"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsRule"><span class="annot"><a href="GHC.Hs.Extension.html#XHsRule"><span class="hs-identifier hs-var">XHsRule</span></a></span></span><span>          </span><span id="local-6989586621680875299"><span class="annot"><a href="#local-6989586621680875299"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-450"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXRuleDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXRuleDecl"><span class="hs-identifier hs-var">XXRuleDecl</span></a></span></span><span>       </span><span id="local-6989586621680875297"><span class="annot"><a href="#local-6989586621680875297"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-451"></span><span>
</span><span id="line-452"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-453"></span><span class="hs-comment">-- RuleBndr type families</span><span>
</span><span id="line-454"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCRuleBndr"><span class="annot"><a href="GHC.Hs.Extension.html#XCRuleBndr"><span class="hs-identifier hs-var">XCRuleBndr</span></a></span></span><span>      </span><span id="local-6989586621680875295"><span class="annot"><a href="#local-6989586621680875295"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-455"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRuleBndrSig"><span class="annot"><a href="GHC.Hs.Extension.html#XRuleBndrSig"><span class="hs-identifier hs-var">XRuleBndrSig</span></a></span></span><span>    </span><span id="local-6989586621680875293"><span class="annot"><a href="#local-6989586621680875293"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-456"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXRuleBndr"><span class="annot"><a href="GHC.Hs.Extension.html#XXRuleBndr"><span class="hs-identifier hs-var">XXRuleBndr</span></a></span></span><span>      </span><span id="local-6989586621680875291"><span class="annot"><a href="#local-6989586621680875291"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-457"></span><span>
</span><span id="line-458"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-459"></span><span class="hs-comment">-- WarnDecls type families</span><span>
</span><span id="line-460"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XWarnings"><span class="annot"><a href="GHC.Hs.Extension.html#XWarnings"><span class="hs-identifier hs-var">XWarnings</span></a></span></span><span>        </span><span id="local-6989586621680875289"><span class="annot"><a href="#local-6989586621680875289"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-461"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXWarnDecls"><span class="annot"><a href="GHC.Hs.Extension.html#XXWarnDecls"><span class="hs-identifier hs-var">XXWarnDecls</span></a></span></span><span>      </span><span id="local-6989586621680875287"><span class="annot"><a href="#local-6989586621680875287"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-462"></span><span>
</span><span id="line-463"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-464"></span><span class="hs-comment">-- AnnDecl type families</span><span>
</span><span id="line-465"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XWarning"><span class="annot"><a href="GHC.Hs.Extension.html#XWarning"><span class="hs-identifier hs-var">XWarning</span></a></span></span><span>        </span><span id="local-6989586621680875285"><span class="annot"><a href="#local-6989586621680875285"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-466"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXWarnDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXWarnDecl"><span class="hs-identifier hs-var">XXWarnDecl</span></a></span></span><span>      </span><span id="local-6989586621680875283"><span class="annot"><a href="#local-6989586621680875283"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-467"></span><span>
</span><span id="line-468"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-469"></span><span class="hs-comment">-- AnnDecl type families</span><span>
</span><span id="line-470"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsAnnotation"><span class="annot"><a href="GHC.Hs.Extension.html#XHsAnnotation"><span class="hs-identifier hs-var">XHsAnnotation</span></a></span></span><span>  </span><span id="local-6989586621680875281"><span class="annot"><a href="#local-6989586621680875281"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-471"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXAnnDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXAnnDecl"><span class="hs-identifier hs-var">XXAnnDecl</span></a></span></span><span>      </span><span id="local-6989586621680875279"><span class="annot"><a href="#local-6989586621680875279"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-472"></span><span>
</span><span id="line-473"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-474"></span><span class="hs-comment">-- RoleAnnotDecl type families</span><span>
</span><span id="line-475"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCRoleAnnotDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XCRoleAnnotDecl"><span class="hs-identifier hs-var">XCRoleAnnotDecl</span></a></span></span><span>  </span><span id="local-6989586621680875277"><span class="annot"><a href="#local-6989586621680875277"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-476"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXRoleAnnotDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXRoleAnnotDecl"><span class="hs-identifier hs-var">XXRoleAnnotDecl</span></a></span></span><span>  </span><span id="local-6989586621680875275"><span class="annot"><a href="#local-6989586621680875275"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-477"></span><span>
</span><span id="line-478"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-479"></span><span class="hs-comment">-- Type families for the HsExpr extension points</span><span>
</span><span id="line-480"></span><span>
</span><span id="line-481"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XVar"><span class="annot"><a href="GHC.Hs.Extension.html#XVar"><span class="hs-identifier hs-var">XVar</span></a></span></span><span>            </span><span id="local-6989586621680875273"><span class="annot"><a href="#local-6989586621680875273"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-482"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XUnboundVar"><span class="annot"><a href="GHC.Hs.Extension.html#XUnboundVar"><span class="hs-identifier hs-var">XUnboundVar</span></a></span></span><span>     </span><span id="local-6989586621680875271"><span class="annot"><a href="#local-6989586621680875271"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-483"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XConLikeOut"><span class="annot"><a href="GHC.Hs.Extension.html#XConLikeOut"><span class="hs-identifier hs-var">XConLikeOut</span></a></span></span><span>     </span><span id="local-6989586621680875269"><span class="annot"><a href="#local-6989586621680875269"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-484"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRecFld"><span class="annot"><a href="GHC.Hs.Extension.html#XRecFld"><span class="hs-identifier hs-var">XRecFld</span></a></span></span><span>         </span><span id="local-6989586621680875267"><span class="annot"><a href="#local-6989586621680875267"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-485"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XOverLabel"><span class="annot"><a href="GHC.Hs.Extension.html#XOverLabel"><span class="hs-identifier hs-var">XOverLabel</span></a></span></span><span>      </span><span id="local-6989586621680875265"><span class="annot"><a href="#local-6989586621680875265"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-486"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIPVar"><span class="annot"><a href="GHC.Hs.Extension.html#XIPVar"><span class="hs-identifier hs-var">XIPVar</span></a></span></span><span>          </span><span id="local-6989586621680875263"><span class="annot"><a href="#local-6989586621680875263"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-487"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XOverLitE"><span class="annot"><a href="GHC.Hs.Extension.html#XOverLitE"><span class="hs-identifier hs-var">XOverLitE</span></a></span></span><span>       </span><span id="local-6989586621680875261"><span class="annot"><a href="#local-6989586621680875261"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-488"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLitE"><span class="annot"><a href="GHC.Hs.Extension.html#XLitE"><span class="hs-identifier hs-var">XLitE</span></a></span></span><span>           </span><span id="local-6989586621680875259"><span class="annot"><a href="#local-6989586621680875259"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-489"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLam"><span class="annot"><a href="GHC.Hs.Extension.html#XLam"><span class="hs-identifier hs-var">XLam</span></a></span></span><span>            </span><span id="local-6989586621680875257"><span class="annot"><a href="#local-6989586621680875257"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-490"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLamCase"><span class="annot"><a href="GHC.Hs.Extension.html#XLamCase"><span class="hs-identifier hs-var">XLamCase</span></a></span></span><span>        </span><span id="local-6989586621680875255"><span class="annot"><a href="#local-6989586621680875255"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-491"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XApp"><span class="annot"><a href="GHC.Hs.Extension.html#XApp"><span class="hs-identifier hs-var">XApp</span></a></span></span><span>            </span><span id="local-6989586621680875253"><span class="annot"><a href="#local-6989586621680875253"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-492"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XAppTypeE"><span class="annot"><a href="GHC.Hs.Extension.html#XAppTypeE"><span class="hs-identifier hs-var">XAppTypeE</span></a></span></span><span>       </span><span id="local-6989586621680875251"><span class="annot"><a href="#local-6989586621680875251"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-493"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XOpApp"><span class="annot"><a href="GHC.Hs.Extension.html#XOpApp"><span class="hs-identifier hs-var">XOpApp</span></a></span></span><span>          </span><span id="local-6989586621680875249"><span class="annot"><a href="#local-6989586621680875249"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-494"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XNegApp"><span class="annot"><a href="GHC.Hs.Extension.html#XNegApp"><span class="hs-identifier hs-var">XNegApp</span></a></span></span><span>         </span><span id="local-6989586621680875247"><span class="annot"><a href="#local-6989586621680875247"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-495"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPar"><span class="annot"><a href="GHC.Hs.Extension.html#XPar"><span class="hs-identifier hs-var">XPar</span></a></span></span><span>            </span><span id="local-6989586621680875245"><span class="annot"><a href="#local-6989586621680875245"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-496"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSectionL"><span class="annot"><a href="GHC.Hs.Extension.html#XSectionL"><span class="hs-identifier hs-var">XSectionL</span></a></span></span><span>       </span><span id="local-6989586621680875243"><span class="annot"><a href="#local-6989586621680875243"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-497"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSectionR"><span class="annot"><a href="GHC.Hs.Extension.html#XSectionR"><span class="hs-identifier hs-var">XSectionR</span></a></span></span><span>       </span><span id="local-6989586621680875241"><span class="annot"><a href="#local-6989586621680875241"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-498"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XExplicitTuple"><span class="annot"><a href="GHC.Hs.Extension.html#XExplicitTuple"><span class="hs-identifier hs-var">XExplicitTuple</span></a></span></span><span>  </span><span id="local-6989586621680875239"><span class="annot"><a href="#local-6989586621680875239"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-499"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XExplicitSum"><span class="annot"><a href="GHC.Hs.Extension.html#XExplicitSum"><span class="hs-identifier hs-var">XExplicitSum</span></a></span></span><span>    </span><span id="local-6989586621680875237"><span class="annot"><a href="#local-6989586621680875237"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-500"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCase"><span class="annot"><a href="GHC.Hs.Extension.html#XCase"><span class="hs-identifier hs-var">XCase</span></a></span></span><span>           </span><span id="local-6989586621680875235"><span class="annot"><a href="#local-6989586621680875235"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-501"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIf"><span class="annot"><a href="GHC.Hs.Extension.html#XIf"><span class="hs-identifier hs-var">XIf</span></a></span></span><span>             </span><span id="local-6989586621680875233"><span class="annot"><a href="#local-6989586621680875233"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-502"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XMultiIf"><span class="annot"><a href="GHC.Hs.Extension.html#XMultiIf"><span class="hs-identifier hs-var">XMultiIf</span></a></span></span><span>        </span><span id="local-6989586621680875231"><span class="annot"><a href="#local-6989586621680875231"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-503"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLet"><span class="annot"><a href="GHC.Hs.Extension.html#XLet"><span class="hs-identifier hs-var">XLet</span></a></span></span><span>            </span><span id="local-6989586621680875229"><span class="annot"><a href="#local-6989586621680875229"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-504"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDo"><span class="annot"><a href="GHC.Hs.Extension.html#XDo"><span class="hs-identifier hs-var">XDo</span></a></span></span><span>             </span><span id="local-6989586621680875227"><span class="annot"><a href="#local-6989586621680875227"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-505"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XExplicitList"><span class="annot"><a href="GHC.Hs.Extension.html#XExplicitList"><span class="hs-identifier hs-var">XExplicitList</span></a></span></span><span>   </span><span id="local-6989586621680875225"><span class="annot"><a href="#local-6989586621680875225"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-506"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRecordCon"><span class="annot"><a href="GHC.Hs.Extension.html#XRecordCon"><span class="hs-identifier hs-var">XRecordCon</span></a></span></span><span>      </span><span id="local-6989586621680875223"><span class="annot"><a href="#local-6989586621680875223"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-507"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRecordUpd"><span class="annot"><a href="GHC.Hs.Extension.html#XRecordUpd"><span class="hs-identifier hs-var">XRecordUpd</span></a></span></span><span>      </span><span id="local-6989586621680875221"><span class="annot"><a href="#local-6989586621680875221"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-508"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XExprWithTySig"><span class="annot"><a href="GHC.Hs.Extension.html#XExprWithTySig"><span class="hs-identifier hs-var">XExprWithTySig</span></a></span></span><span>  </span><span id="local-6989586621680875219"><span class="annot"><a href="#local-6989586621680875219"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-509"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XArithSeq"><span class="annot"><a href="GHC.Hs.Extension.html#XArithSeq"><span class="hs-identifier hs-var">XArithSeq</span></a></span></span><span>       </span><span id="local-6989586621680875217"><span class="annot"><a href="#local-6989586621680875217"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-510"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XBracket"><span class="annot"><a href="GHC.Hs.Extension.html#XBracket"><span class="hs-identifier hs-var">XBracket</span></a></span></span><span>        </span><span id="local-6989586621680875215"><span class="annot"><a href="#local-6989586621680875215"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-511"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRnBracketOut"><span class="annot"><a href="GHC.Hs.Extension.html#XRnBracketOut"><span class="hs-identifier hs-var">XRnBracketOut</span></a></span></span><span>   </span><span id="local-6989586621680875213"><span class="annot"><a href="#local-6989586621680875213"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-512"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTcBracketOut"><span class="annot"><a href="GHC.Hs.Extension.html#XTcBracketOut"><span class="hs-identifier hs-var">XTcBracketOut</span></a></span></span><span>   </span><span id="local-6989586621680875211"><span class="annot"><a href="#local-6989586621680875211"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-513"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSpliceE"><span class="annot"><a href="GHC.Hs.Extension.html#XSpliceE"><span class="hs-identifier hs-var">XSpliceE</span></a></span></span><span>        </span><span id="local-6989586621680875209"><span class="annot"><a href="#local-6989586621680875209"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-514"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XProc"><span class="annot"><a href="GHC.Hs.Extension.html#XProc"><span class="hs-identifier hs-var">XProc</span></a></span></span><span>           </span><span id="local-6989586621680875207"><span class="annot"><a href="#local-6989586621680875207"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-515"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XStatic"><span class="annot"><a href="GHC.Hs.Extension.html#XStatic"><span class="hs-identifier hs-var">XStatic</span></a></span></span><span>         </span><span id="local-6989586621680875205"><span class="annot"><a href="#local-6989586621680875205"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-516"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTick"><span class="annot"><a href="GHC.Hs.Extension.html#XTick"><span class="hs-identifier hs-var">XTick</span></a></span></span><span>           </span><span id="local-6989586621680875203"><span class="annot"><a href="#local-6989586621680875203"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-517"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XBinTick"><span class="annot"><a href="GHC.Hs.Extension.html#XBinTick"><span class="hs-identifier hs-var">XBinTick</span></a></span></span><span>        </span><span id="local-6989586621680875201"><span class="annot"><a href="#local-6989586621680875201"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-518"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPragE"><span class="annot"><a href="GHC.Hs.Extension.html#XPragE"><span class="hs-identifier hs-var">XPragE</span></a></span></span><span>          </span><span id="local-6989586621680875199"><span class="annot"><a href="#local-6989586621680875199"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-519"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXExpr"><span class="annot"><a href="GHC.Hs.Extension.html#XXExpr"><span class="hs-identifier hs-var">XXExpr</span></a></span></span><span>          </span><span id="local-6989586621680875197"><span class="annot"><a href="#local-6989586621680875197"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-520"></span><span>
</span><span id="line-521"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSCC"><span class="annot"><a href="GHC.Hs.Extension.html#XSCC"><span class="hs-identifier hs-var">XSCC</span></a></span></span><span>            </span><span id="local-6989586621680875195"><span class="annot"><a href="#local-6989586621680875195"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-522"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCoreAnn"><span class="annot"><a href="GHC.Hs.Extension.html#XCoreAnn"><span class="hs-identifier hs-var">XCoreAnn</span></a></span></span><span>        </span><span id="local-6989586621680875193"><span class="annot"><a href="#local-6989586621680875193"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-523"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTickPragma"><span class="annot"><a href="GHC.Hs.Extension.html#XTickPragma"><span class="hs-identifier hs-var">XTickPragma</span></a></span></span><span>     </span><span id="local-6989586621680875191"><span class="annot"><a href="#local-6989586621680875191"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-524"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXPragE"><span class="annot"><a href="GHC.Hs.Extension.html#XXPragE"><span class="hs-identifier hs-var">XXPragE</span></a></span></span><span>         </span><span id="local-6989586621680875189"><span class="annot"><a href="#local-6989586621680875189"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-525"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-526"></span><span>
</span><span id="line-527"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XUnambiguous"><span class="annot"><a href="GHC.Hs.Extension.html#XUnambiguous"><span class="hs-identifier hs-var">XUnambiguous</span></a></span></span><span>        </span><span id="local-6989586621680875187"><span class="annot"><a href="#local-6989586621680875187"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-528"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XAmbiguous"><span class="annot"><a href="GHC.Hs.Extension.html#XAmbiguous"><span class="hs-identifier hs-var">XAmbiguous</span></a></span></span><span>          </span><span id="local-6989586621680875185"><span class="annot"><a href="#local-6989586621680875185"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-529"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXAmbiguousFieldOcc"><span class="annot"><a href="GHC.Hs.Extension.html#XXAmbiguousFieldOcc"><span class="hs-identifier hs-var">XXAmbiguousFieldOcc</span></a></span></span><span> </span><span id="local-6989586621680875183"><span class="annot"><a href="#local-6989586621680875183"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-530"></span><span>
</span><span id="line-531"></span><span class="hs-comment">-- ----------------------------------------------------------------------</span><span>
</span><span id="line-532"></span><span>
</span><span id="line-533"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPresent"><span class="annot"><a href="GHC.Hs.Extension.html#XPresent"><span class="hs-identifier hs-var">XPresent</span></a></span></span><span>  </span><span id="local-6989586621680875181"><span class="annot"><a href="#local-6989586621680875181"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-534"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XMissing"><span class="annot"><a href="GHC.Hs.Extension.html#XMissing"><span class="hs-identifier hs-var">XMissing</span></a></span></span><span>  </span><span id="local-6989586621680875179"><span class="annot"><a href="#local-6989586621680875179"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-535"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXTupArg"><span class="annot"><a href="GHC.Hs.Extension.html#XXTupArg"><span class="hs-identifier hs-var">XXTupArg</span></a></span></span><span>  </span><span id="local-6989586621680875177"><span class="annot"><a href="#local-6989586621680875177"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-536"></span><span>
</span><span id="line-537"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-538"></span><span>
</span><span id="line-539"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTypedSplice"><span class="annot"><a href="GHC.Hs.Extension.html#XTypedSplice"><span class="hs-identifier hs-var">XTypedSplice</span></a></span></span><span>   </span><span id="local-6989586621680875175"><span class="annot"><a href="#local-6989586621680875175"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-540"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XUntypedSplice"><span class="annot"><a href="GHC.Hs.Extension.html#XUntypedSplice"><span class="hs-identifier hs-var">XUntypedSplice</span></a></span></span><span> </span><span id="local-6989586621680875173"><span class="annot"><a href="#local-6989586621680875173"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-541"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XQuasiQuote"><span class="annot"><a href="GHC.Hs.Extension.html#XQuasiQuote"><span class="hs-identifier hs-var">XQuasiQuote</span></a></span></span><span>    </span><span id="local-6989586621680875171"><span class="annot"><a href="#local-6989586621680875171"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-542"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSpliced"><span class="annot"><a href="GHC.Hs.Extension.html#XSpliced"><span class="hs-identifier hs-var">XSpliced</span></a></span></span><span>       </span><span id="local-6989586621680875169"><span class="annot"><a href="#local-6989586621680875169"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-543"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXSplice"><span class="annot"><a href="GHC.Hs.Extension.html#XXSplice"><span class="hs-identifier hs-var">XXSplice</span></a></span></span><span>       </span><span id="local-6989586621680875167"><span class="annot"><a href="#local-6989586621680875167"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-544"></span><span>
</span><span id="line-545"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-546"></span><span>
</span><span id="line-547"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XExpBr"><span class="annot"><a href="GHC.Hs.Extension.html#XExpBr"><span class="hs-identifier hs-var">XExpBr</span></a></span></span><span>      </span><span id="local-6989586621680875165"><span class="annot"><a href="#local-6989586621680875165"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-548"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XPatBr"><span class="annot"><a href="GHC.Hs.Extension.html#XPatBr"><span class="hs-identifier hs-var">XPatBr</span></a></span></span><span>      </span><span id="local-6989586621680875163"><span class="annot"><a href="#local-6989586621680875163"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-549"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDecBrL"><span class="annot"><a href="GHC.Hs.Extension.html#XDecBrL"><span class="hs-identifier hs-var">XDecBrL</span></a></span></span><span>     </span><span id="local-6989586621680875161"><span class="annot"><a href="#local-6989586621680875161"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-550"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDecBrG"><span class="annot"><a href="GHC.Hs.Extension.html#XDecBrG"><span class="hs-identifier hs-var">XDecBrG</span></a></span></span><span>     </span><span id="local-6989586621680875159"><span class="annot"><a href="#local-6989586621680875159"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-551"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTypBr"><span class="annot"><a href="GHC.Hs.Extension.html#XTypBr"><span class="hs-identifier hs-var">XTypBr</span></a></span></span><span>      </span><span id="local-6989586621680875157"><span class="annot"><a href="#local-6989586621680875157"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-552"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XVarBr"><span class="annot"><a href="GHC.Hs.Extension.html#XVarBr"><span class="hs-identifier hs-var">XVarBr</span></a></span></span><span>      </span><span id="local-6989586621680875155"><span class="annot"><a href="#local-6989586621680875155"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-553"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTExpBr"><span class="annot"><a href="GHC.Hs.Extension.html#XTExpBr"><span class="hs-identifier hs-var">XTExpBr</span></a></span></span><span>     </span><span id="local-6989586621680875153"><span class="annot"><a href="#local-6989586621680875153"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-554"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXBracket"><span class="annot"><a href="GHC.Hs.Extension.html#XXBracket"><span class="hs-identifier hs-var">XXBracket</span></a></span></span><span>   </span><span id="local-6989586621680875151"><span class="annot"><a href="#local-6989586621680875151"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-555"></span><span>
</span><span id="line-556"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-557"></span><span>
</span><span id="line-558"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdTop"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdTop"><span class="hs-identifier hs-var">XCmdTop</span></a></span></span><span>  </span><span id="local-6989586621680875149"><span class="annot"><a href="#local-6989586621680875149"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-559"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXCmdTop"><span class="annot"><a href="GHC.Hs.Extension.html#XXCmdTop"><span class="hs-identifier hs-var">XXCmdTop</span></a></span></span><span> </span><span id="local-6989586621680875147"><span class="annot"><a href="#local-6989586621680875147"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-560"></span><span>
</span><span id="line-561"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-562"></span><span>
</span><span id="line-563"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XMG"><span class="annot"><a href="GHC.Hs.Extension.html#XMG"><span class="hs-identifier hs-var">XMG</span></a></span></span><span>           </span><span id="local-6989586621680875145"><span class="annot"><a href="#local-6989586621680875145"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875144"><span class="annot"><a href="#local-6989586621680875144"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-564"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXMatchGroup"><span class="annot"><a href="GHC.Hs.Extension.html#XXMatchGroup"><span class="hs-identifier hs-var">XXMatchGroup</span></a></span></span><span>  </span><span id="local-6989586621680875142"><span class="annot"><a href="#local-6989586621680875142"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875141"><span class="annot"><a href="#local-6989586621680875141"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-565"></span><span>
</span><span id="line-566"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-567"></span><span>
</span><span id="line-568"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCMatch"><span class="annot"><a href="GHC.Hs.Extension.html#XCMatch"><span class="hs-identifier hs-var">XCMatch</span></a></span></span><span>  </span><span id="local-6989586621680875139"><span class="annot"><a href="#local-6989586621680875139"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875138"><span class="annot"><a href="#local-6989586621680875138"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-569"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXMatch"><span class="annot"><a href="GHC.Hs.Extension.html#XXMatch"><span class="hs-identifier hs-var">XXMatch</span></a></span></span><span>  </span><span id="local-6989586621680875136"><span class="annot"><a href="#local-6989586621680875136"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875135"><span class="annot"><a href="#local-6989586621680875135"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-570"></span><span>
</span><span id="line-571"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-572"></span><span>
</span><span id="line-573"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCGRHSs"><span class="annot"><a href="GHC.Hs.Extension.html#XCGRHSs"><span class="hs-identifier hs-var">XCGRHSs</span></a></span></span><span>  </span><span id="local-6989586621680875133"><span class="annot"><a href="#local-6989586621680875133"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875132"><span class="annot"><a href="#local-6989586621680875132"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-574"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXGRHSs"><span class="annot"><a href="GHC.Hs.Extension.html#XXGRHSs"><span class="hs-identifier hs-var">XXGRHSs</span></a></span></span><span>  </span><span id="local-6989586621680875130"><span class="annot"><a href="#local-6989586621680875130"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875129"><span class="annot"><a href="#local-6989586621680875129"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-575"></span><span>
</span><span id="line-576"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-577"></span><span>
</span><span id="line-578"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCGRHS"><span class="annot"><a href="GHC.Hs.Extension.html#XCGRHS"><span class="hs-identifier hs-var">XCGRHS</span></a></span></span><span>  </span><span id="local-6989586621680875127"><span class="annot"><a href="#local-6989586621680875127"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875126"><span class="annot"><a href="#local-6989586621680875126"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-579"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXGRHS"><span class="annot"><a href="GHC.Hs.Extension.html#XXGRHS"><span class="hs-identifier hs-var">XXGRHS</span></a></span></span><span>  </span><span id="local-6989586621680875124"><span class="annot"><a href="#local-6989586621680875124"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875123"><span class="annot"><a href="#local-6989586621680875123"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-580"></span><span>
</span><span id="line-581"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-582"></span><span>
</span><span id="line-583"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLastStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XLastStmt"><span class="hs-identifier hs-var">XLastStmt</span></a></span></span><span>        </span><span id="local-6989586621680875121"><span class="annot"><a href="#local-6989586621680875121"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875120"><span class="annot"><a href="#local-6989586621680875120"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875119"><span class="annot"><a href="#local-6989586621680875119"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-584"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XBindStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XBindStmt"><span class="hs-identifier hs-var">XBindStmt</span></a></span></span><span>        </span><span id="local-6989586621680875117"><span class="annot"><a href="#local-6989586621680875117"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875116"><span class="annot"><a href="#local-6989586621680875116"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875115"><span class="annot"><a href="#local-6989586621680875115"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-585"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XApplicativeStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XApplicativeStmt"><span class="hs-identifier hs-var">XApplicativeStmt</span></a></span></span><span> </span><span id="local-6989586621680875113"><span class="annot"><a href="#local-6989586621680875113"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875112"><span class="annot"><a href="#local-6989586621680875112"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875111"><span class="annot"><a href="#local-6989586621680875111"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-586"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XBodyStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XBodyStmt"><span class="hs-identifier hs-var">XBodyStmt</span></a></span></span><span>        </span><span id="local-6989586621680875109"><span class="annot"><a href="#local-6989586621680875109"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875108"><span class="annot"><a href="#local-6989586621680875108"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875107"><span class="annot"><a href="#local-6989586621680875107"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-587"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLetStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XLetStmt"><span class="hs-identifier hs-var">XLetStmt</span></a></span></span><span>         </span><span id="local-6989586621680875105"><span class="annot"><a href="#local-6989586621680875105"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875104"><span class="annot"><a href="#local-6989586621680875104"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875103"><span class="annot"><a href="#local-6989586621680875103"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-588"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XParStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XParStmt"><span class="hs-identifier hs-var">XParStmt</span></a></span></span><span>         </span><span id="local-6989586621680875101"><span class="annot"><a href="#local-6989586621680875101"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875100"><span class="annot"><a href="#local-6989586621680875100"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875099"><span class="annot"><a href="#local-6989586621680875099"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-589"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTransStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XTransStmt"><span class="hs-identifier hs-var">XTransStmt</span></a></span></span><span>       </span><span id="local-6989586621680875097"><span class="annot"><a href="#local-6989586621680875097"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875096"><span class="annot"><a href="#local-6989586621680875096"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875095"><span class="annot"><a href="#local-6989586621680875095"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-590"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRecStmt"><span class="annot"><a href="GHC.Hs.Extension.html#XRecStmt"><span class="hs-identifier hs-var">XRecStmt</span></a></span></span><span>         </span><span id="local-6989586621680875093"><span class="annot"><a href="#local-6989586621680875093"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875092"><span class="annot"><a href="#local-6989586621680875092"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875091"><span class="annot"><a href="#local-6989586621680875091"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-591"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXStmtLR"><span class="annot"><a href="GHC.Hs.Extension.html#XXStmtLR"><span class="hs-identifier hs-var">XXStmtLR</span></a></span></span><span>         </span><span id="local-6989586621680875089"><span class="annot"><a href="#local-6989586621680875089"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875088"><span class="annot"><a href="#local-6989586621680875088"><span class="hs-identifier hs-type">x'</span></a></span></span><span> </span><span id="local-6989586621680875087"><span class="annot"><a href="#local-6989586621680875087"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-592"></span><span>
</span><span id="line-593"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-594"></span><span>
</span><span id="line-595"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdArrApp"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdArrApp"><span class="hs-identifier hs-var">XCmdArrApp</span></a></span></span><span>  </span><span id="local-6989586621680875085"><span class="annot"><a href="#local-6989586621680875085"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-596"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdArrForm"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdArrForm"><span class="hs-identifier hs-var">XCmdArrForm</span></a></span></span><span> </span><span id="local-6989586621680875083"><span class="annot"><a href="#local-6989586621680875083"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-597"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdApp"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdApp"><span class="hs-identifier hs-var">XCmdApp</span></a></span></span><span>     </span><span id="local-6989586621680875081"><span class="annot"><a href="#local-6989586621680875081"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-598"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdLam"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdLam"><span class="hs-identifier hs-var">XCmdLam</span></a></span></span><span>     </span><span id="local-6989586621680875079"><span class="annot"><a href="#local-6989586621680875079"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-599"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdPar"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdPar"><span class="hs-identifier hs-var">XCmdPar</span></a></span></span><span>     </span><span id="local-6989586621680875077"><span class="annot"><a href="#local-6989586621680875077"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-600"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdCase"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdCase"><span class="hs-identifier hs-var">XCmdCase</span></a></span></span><span>    </span><span id="local-6989586621680875075"><span class="annot"><a href="#local-6989586621680875075"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-601"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdLamCase"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdLamCase"><span class="hs-identifier hs-var">XCmdLamCase</span></a></span></span><span> </span><span id="local-6989586621680875073"><span class="annot"><a href="#local-6989586621680875073"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-602"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdIf"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdIf"><span class="hs-identifier hs-var">XCmdIf</span></a></span></span><span>      </span><span id="local-6989586621680875071"><span class="annot"><a href="#local-6989586621680875071"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-603"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdLet"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdLet"><span class="hs-identifier hs-var">XCmdLet</span></a></span></span><span>     </span><span id="local-6989586621680875069"><span class="annot"><a href="#local-6989586621680875069"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-604"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdDo"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdDo"><span class="hs-identifier hs-var">XCmdDo</span></a></span></span><span>      </span><span id="local-6989586621680875067"><span class="annot"><a href="#local-6989586621680875067"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-605"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCmdWrap"><span class="annot"><a href="GHC.Hs.Extension.html#XCmdWrap"><span class="hs-identifier hs-var">XCmdWrap</span></a></span></span><span>    </span><span id="local-6989586621680875065"><span class="annot"><a href="#local-6989586621680875065"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-606"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXCmd"><span class="annot"><a href="GHC.Hs.Extension.html#XXCmd"><span class="hs-identifier hs-var">XXCmd</span></a></span></span><span>       </span><span id="local-6989586621680875063"><span class="annot"><a href="#local-6989586621680875063"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-607"></span><span>
</span><span id="line-608"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-609"></span><span>
</span><span id="line-610"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XParStmtBlock"><span class="annot"><a href="GHC.Hs.Extension.html#XParStmtBlock"><span class="hs-identifier hs-var">XParStmtBlock</span></a></span></span><span>  </span><span id="local-6989586621680875061"><span class="annot"><a href="#local-6989586621680875061"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875060"><span class="annot"><a href="#local-6989586621680875060"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-611"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXParStmtBlock"><span class="annot"><a href="GHC.Hs.Extension.html#XXParStmtBlock"><span class="hs-identifier hs-var">XXParStmtBlock</span></a></span></span><span> </span><span id="local-6989586621680875058"><span class="annot"><a href="#local-6989586621680875058"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680875057"><span class="annot"><a href="#local-6989586621680875057"><span class="hs-identifier hs-type">x'</span></a></span></span><span>
</span><span id="line-612"></span><span>
</span><span id="line-613"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-614"></span><span>
</span><span id="line-615"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XApplicativeArgOne"><span class="annot"><a href="GHC.Hs.Extension.html#XApplicativeArgOne"><span class="hs-identifier hs-var">XApplicativeArgOne</span></a></span></span><span>   </span><span id="local-6989586621680875055"><span class="annot"><a href="#local-6989586621680875055"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-616"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XApplicativeArgMany"><span class="annot"><a href="GHC.Hs.Extension.html#XApplicativeArgMany"><span class="hs-identifier hs-var">XApplicativeArgMany</span></a></span></span><span>  </span><span id="local-6989586621680875053"><span class="annot"><a href="#local-6989586621680875053"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-617"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXApplicativeArg"><span class="annot"><a href="GHC.Hs.Extension.html#XXApplicativeArg"><span class="hs-identifier hs-var">XXApplicativeArg</span></a></span></span><span>     </span><span id="local-6989586621680875051"><span class="annot"><a href="#local-6989586621680875051"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-618"></span><span>
</span><span id="line-619"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-620"></span><span class="hs-comment">-- Type families for the HsImpExp extension points</span><span>
</span><span id="line-621"></span><span>
</span><span id="line-622"></span><span class="hs-comment">-- TODO</span><span>
</span><span id="line-623"></span><span>
</span><span id="line-624"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-625"></span><span class="hs-comment">-- Type families for the HsLit extension points</span><span>
</span><span id="line-626"></span><span>
</span><span id="line-627"></span><span class="hs-comment">-- We define a type family for each extension point. This is based on prepending</span><span>
</span><span id="line-628"></span><span class="hs-comment">-- 'X' to the constructor name, for ease of reference.</span><span>
</span><span id="line-629"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsChar"><span class="annot"><a href="GHC.Hs.Extension.html#XHsChar"><span class="hs-identifier hs-var">XHsChar</span></a></span></span><span> </span><span id="local-6989586621680875049"><span class="annot"><a href="#local-6989586621680875049"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-630"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsCharPrim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsCharPrim"><span class="hs-identifier hs-var">XHsCharPrim</span></a></span></span><span> </span><span id="local-6989586621680875047"><span class="annot"><a href="#local-6989586621680875047"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-631"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsString"><span class="annot"><a href="GHC.Hs.Extension.html#XHsString"><span class="hs-identifier hs-var">XHsString</span></a></span></span><span> </span><span id="local-6989586621680875045"><span class="annot"><a href="#local-6989586621680875045"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-632"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsStringPrim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsStringPrim"><span class="hs-identifier hs-var">XHsStringPrim</span></a></span></span><span> </span><span id="local-6989586621680875043"><span class="annot"><a href="#local-6989586621680875043"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-633"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsInt"><span class="annot"><a href="GHC.Hs.Extension.html#XHsInt"><span class="hs-identifier hs-var">XHsInt</span></a></span></span><span> </span><span id="local-6989586621680875041"><span class="annot"><a href="#local-6989586621680875041"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-634"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsIntPrim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsIntPrim"><span class="hs-identifier hs-var">XHsIntPrim</span></a></span></span><span> </span><span id="local-6989586621680875039"><span class="annot"><a href="#local-6989586621680875039"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-635"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsWordPrim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsWordPrim"><span class="hs-identifier hs-var">XHsWordPrim</span></a></span></span><span> </span><span id="local-6989586621680875037"><span class="annot"><a href="#local-6989586621680875037"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-636"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsInt64Prim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsInt64Prim"><span class="hs-identifier hs-var">XHsInt64Prim</span></a></span></span><span> </span><span id="local-6989586621680875035"><span class="annot"><a href="#local-6989586621680875035"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-637"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsWord64Prim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsWord64Prim"><span class="hs-identifier hs-var">XHsWord64Prim</span></a></span></span><span> </span><span id="local-6989586621680875033"><span class="annot"><a href="#local-6989586621680875033"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-638"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsInteger"><span class="annot"><a href="GHC.Hs.Extension.html#XHsInteger"><span class="hs-identifier hs-var">XHsInteger</span></a></span></span><span> </span><span id="local-6989586621680875031"><span class="annot"><a href="#local-6989586621680875031"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-639"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsRat"><span class="annot"><a href="GHC.Hs.Extension.html#XHsRat"><span class="hs-identifier hs-var">XHsRat</span></a></span></span><span> </span><span id="local-6989586621680875029"><span class="annot"><a href="#local-6989586621680875029"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-640"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsFloatPrim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsFloatPrim"><span class="hs-identifier hs-var">XHsFloatPrim</span></a></span></span><span> </span><span id="local-6989586621680875027"><span class="annot"><a href="#local-6989586621680875027"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-641"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsDoublePrim"><span class="annot"><a href="GHC.Hs.Extension.html#XHsDoublePrim"><span class="hs-identifier hs-var">XHsDoublePrim</span></a></span></span><span> </span><span id="local-6989586621680875025"><span class="annot"><a href="#local-6989586621680875025"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-642"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXLit"><span class="annot"><a href="GHC.Hs.Extension.html#XXLit"><span class="hs-identifier hs-var">XXLit</span></a></span></span><span> </span><span id="local-6989586621680875023"><span class="annot"><a href="#local-6989586621680875023"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-643"></span><span>
</span><span id="line-644"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XOverLit"><span class="annot"><a href="GHC.Hs.Extension.html#XOverLit"><span class="hs-identifier hs-var">XOverLit</span></a></span></span><span>  </span><span id="local-6989586621680875021"><span class="annot"><a href="#local-6989586621680875021"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-645"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXOverLit"><span class="annot"><a href="GHC.Hs.Extension.html#XXOverLit"><span class="hs-identifier hs-var">XXOverLit</span></a></span></span><span> </span><span id="local-6989586621680875019"><span class="annot"><a href="#local-6989586621680875019"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-646"></span><span>
</span><span id="line-647"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-648"></span><span class="hs-comment">-- Type families for the HsPat extension points</span><span>
</span><span id="line-649"></span><span>
</span><span id="line-650"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XWildPat"><span class="annot"><a href="GHC.Hs.Extension.html#XWildPat"><span class="hs-identifier hs-var">XWildPat</span></a></span></span><span>   </span><span id="local-6989586621680875017"><span class="annot"><a href="#local-6989586621680875017"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-651"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XVarPat"><span class="annot"><a href="GHC.Hs.Extension.html#XVarPat"><span class="hs-identifier hs-var">XVarPat</span></a></span></span><span>    </span><span id="local-6989586621680875015"><span class="annot"><a href="#local-6989586621680875015"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-652"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLazyPat"><span class="annot"><a href="GHC.Hs.Extension.html#XLazyPat"><span class="hs-identifier hs-var">XLazyPat</span></a></span></span><span>   </span><span id="local-6989586621680875013"><span class="annot"><a href="#local-6989586621680875013"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-653"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XAsPat"><span class="annot"><a href="GHC.Hs.Extension.html#XAsPat"><span class="hs-identifier hs-var">XAsPat</span></a></span></span><span>     </span><span id="local-6989586621680875011"><span class="annot"><a href="#local-6989586621680875011"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-654"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XParPat"><span class="annot"><a href="GHC.Hs.Extension.html#XParPat"><span class="hs-identifier hs-var">XParPat</span></a></span></span><span>    </span><span id="local-6989586621680875009"><span class="annot"><a href="#local-6989586621680875009"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-655"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XBangPat"><span class="annot"><a href="GHC.Hs.Extension.html#XBangPat"><span class="hs-identifier hs-var">XBangPat</span></a></span></span><span>   </span><span id="local-6989586621680875007"><span class="annot"><a href="#local-6989586621680875007"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-656"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XListPat"><span class="annot"><a href="GHC.Hs.Extension.html#XListPat"><span class="hs-identifier hs-var">XListPat</span></a></span></span><span>   </span><span id="local-6989586621680875005"><span class="annot"><a href="#local-6989586621680875005"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-657"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTuplePat"><span class="annot"><a href="GHC.Hs.Extension.html#XTuplePat"><span class="hs-identifier hs-var">XTuplePat</span></a></span></span><span>  </span><span id="local-6989586621680875003"><span class="annot"><a href="#local-6989586621680875003"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-658"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSumPat"><span class="annot"><a href="GHC.Hs.Extension.html#XSumPat"><span class="hs-identifier hs-var">XSumPat</span></a></span></span><span>    </span><span id="local-6989586621680875001"><span class="annot"><a href="#local-6989586621680875001"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-659"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XConPat"><span class="annot"><a href="GHC.Hs.Extension.html#XConPat"><span class="hs-identifier hs-var">XConPat</span></a></span></span><span>    </span><span id="local-6989586621680874999"><span class="annot"><a href="#local-6989586621680874999"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-660"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XViewPat"><span class="annot"><a href="GHC.Hs.Extension.html#XViewPat"><span class="hs-identifier hs-var">XViewPat</span></a></span></span><span>   </span><span id="local-6989586621680874997"><span class="annot"><a href="#local-6989586621680874997"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-661"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSplicePat"><span class="annot"><a href="GHC.Hs.Extension.html#XSplicePat"><span class="hs-identifier hs-var">XSplicePat</span></a></span></span><span> </span><span id="local-6989586621680874995"><span class="annot"><a href="#local-6989586621680874995"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-662"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XLitPat"><span class="annot"><a href="GHC.Hs.Extension.html#XLitPat"><span class="hs-identifier hs-var">XLitPat</span></a></span></span><span>    </span><span id="local-6989586621680874993"><span class="annot"><a href="#local-6989586621680874993"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-663"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XNPat"><span class="annot"><a href="GHC.Hs.Extension.html#XNPat"><span class="hs-identifier hs-var">XNPat</span></a></span></span><span>      </span><span id="local-6989586621680874991"><span class="annot"><a href="#local-6989586621680874991"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-664"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XNPlusKPat"><span class="annot"><a href="GHC.Hs.Extension.html#XNPlusKPat"><span class="hs-identifier hs-var">XNPlusKPat</span></a></span></span><span> </span><span id="local-6989586621680874989"><span class="annot"><a href="#local-6989586621680874989"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-665"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSigPat"><span class="annot"><a href="GHC.Hs.Extension.html#XSigPat"><span class="hs-identifier hs-var">XSigPat</span></a></span></span><span>    </span><span id="local-6989586621680874987"><span class="annot"><a href="#local-6989586621680874987"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-666"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCoPat"><span class="annot"><a href="GHC.Hs.Extension.html#XCoPat"><span class="hs-identifier hs-var">XCoPat</span></a></span></span><span>     </span><span id="local-6989586621680874985"><span class="annot"><a href="#local-6989586621680874985"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-667"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXPat"><span class="annot"><a href="GHC.Hs.Extension.html#XXPat"><span class="hs-identifier hs-var">XXPat</span></a></span></span><span>      </span><span id="local-6989586621680874983"><span class="annot"><a href="#local-6989586621680874983"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-668"></span><span>
</span><span id="line-669"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-670"></span><span class="hs-comment">-- Type families for the HsTypes type families</span><span>
</span><span id="line-671"></span><span>
</span><span id="line-672"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsQTvs"><span class="annot"><a href="GHC.Hs.Extension.html#XHsQTvs"><span class="hs-identifier hs-var">XHsQTvs</span></a></span></span><span>       </span><span id="local-6989586621680874981"><span class="annot"><a href="#local-6989586621680874981"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-673"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXLHsQTyVars"><span class="annot"><a href="GHC.Hs.Extension.html#XXLHsQTyVars"><span class="hs-identifier hs-var">XXLHsQTyVars</span></a></span></span><span>  </span><span id="local-6989586621680874979"><span class="annot"><a href="#local-6989586621680874979"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-674"></span><span>
</span><span id="line-675"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-676"></span><span>
</span><span id="line-677"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsIB"><span class="annot"><a href="GHC.Hs.Extension.html#XHsIB"><span class="hs-identifier hs-var">XHsIB</span></a></span></span><span>              </span><span id="local-6989586621680874977"><span class="annot"><a href="#local-6989586621680874977"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680874976"><span class="annot"><a href="#local-6989586621680874976"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-678"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsImplicitBndrs"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsImplicitBndrs"><span class="hs-identifier hs-var">XXHsImplicitBndrs</span></a></span></span><span>  </span><span id="local-6989586621680874974"><span class="annot"><a href="#local-6989586621680874974"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680874973"><span class="annot"><a href="#local-6989586621680874973"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-679"></span><span>
</span><span id="line-680"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-681"></span><span>
</span><span id="line-682"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsWC"><span class="annot"><a href="GHC.Hs.Extension.html#XHsWC"><span class="hs-identifier hs-var">XHsWC</span></a></span></span><span>              </span><span id="local-6989586621680874971"><span class="annot"><a href="#local-6989586621680874971"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680874970"><span class="annot"><a href="#local-6989586621680874970"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-683"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsWildCardBndrs"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsWildCardBndrs"><span class="hs-identifier hs-var">XXHsWildCardBndrs</span></a></span></span><span>  </span><span id="local-6989586621680874968"><span class="annot"><a href="#local-6989586621680874968"><span class="hs-identifier hs-type">x</span></a></span></span><span> </span><span id="local-6989586621680874967"><span class="annot"><a href="#local-6989586621680874967"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-684"></span><span>
</span><span id="line-685"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-686"></span><span>
</span><span id="line-687"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsPS"><span class="annot"><a href="GHC.Hs.Extension.html#XHsPS"><span class="hs-identifier hs-var">XHsPS</span></a></span></span><span> </span><span id="local-6989586621680874965"><span class="annot"><a href="#local-6989586621680874965"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-688"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsPatSigType"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsPatSigType"><span class="hs-identifier hs-var">XXHsPatSigType</span></a></span></span><span> </span><span id="local-6989586621680874963"><span class="annot"><a href="#local-6989586621680874963"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-689"></span><span>
</span><span id="line-690"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-691"></span><span>
</span><span id="line-692"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XForAllTy"><span class="annot"><a href="GHC.Hs.Extension.html#XForAllTy"><span class="hs-identifier hs-var">XForAllTy</span></a></span></span><span>        </span><span id="local-6989586621680874961"><span class="annot"><a href="#local-6989586621680874961"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-693"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XQualTy"><span class="annot"><a href="GHC.Hs.Extension.html#XQualTy"><span class="hs-identifier hs-var">XQualTy</span></a></span></span><span>          </span><span id="local-6989586621680874959"><span class="annot"><a href="#local-6989586621680874959"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-694"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTyVar"><span class="annot"><a href="GHC.Hs.Extension.html#XTyVar"><span class="hs-identifier hs-var">XTyVar</span></a></span></span><span>           </span><span id="local-6989586621680874957"><span class="annot"><a href="#local-6989586621680874957"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-695"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XAppTy"><span class="annot"><a href="GHC.Hs.Extension.html#XAppTy"><span class="hs-identifier hs-var">XAppTy</span></a></span></span><span>           </span><span id="local-6989586621680874955"><span class="annot"><a href="#local-6989586621680874955"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-696"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XAppKindTy"><span class="annot"><a href="GHC.Hs.Extension.html#XAppKindTy"><span class="hs-identifier hs-var">XAppKindTy</span></a></span></span><span>       </span><span id="local-6989586621680874953"><span class="annot"><a href="#local-6989586621680874953"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-697"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XFunTy"><span class="annot"><a href="GHC.Hs.Extension.html#XFunTy"><span class="hs-identifier hs-var">XFunTy</span></a></span></span><span>           </span><span id="local-6989586621680874951"><span class="annot"><a href="#local-6989586621680874951"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-698"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XListTy"><span class="annot"><a href="GHC.Hs.Extension.html#XListTy"><span class="hs-identifier hs-var">XListTy</span></a></span></span><span>          </span><span id="local-6989586621680874949"><span class="annot"><a href="#local-6989586621680874949"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-699"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTupleTy"><span class="annot"><a href="GHC.Hs.Extension.html#XTupleTy"><span class="hs-identifier hs-var">XTupleTy</span></a></span></span><span>         </span><span id="local-6989586621680874947"><span class="annot"><a href="#local-6989586621680874947"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-700"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSumTy"><span class="annot"><a href="GHC.Hs.Extension.html#XSumTy"><span class="hs-identifier hs-var">XSumTy</span></a></span></span><span>           </span><span id="local-6989586621680874945"><span class="annot"><a href="#local-6989586621680874945"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-701"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XOpTy"><span class="annot"><a href="GHC.Hs.Extension.html#XOpTy"><span class="hs-identifier hs-var">XOpTy</span></a></span></span><span>            </span><span id="local-6989586621680874943"><span class="annot"><a href="#local-6989586621680874943"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-702"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XParTy"><span class="annot"><a href="GHC.Hs.Extension.html#XParTy"><span class="hs-identifier hs-var">XParTy</span></a></span></span><span>           </span><span id="local-6989586621680874941"><span class="annot"><a href="#local-6989586621680874941"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-703"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIParamTy"><span class="annot"><a href="GHC.Hs.Extension.html#XIParamTy"><span class="hs-identifier hs-var">XIParamTy</span></a></span></span><span>        </span><span id="local-6989586621680874939"><span class="annot"><a href="#local-6989586621680874939"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-704"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XStarTy"><span class="annot"><a href="GHC.Hs.Extension.html#XStarTy"><span class="hs-identifier hs-var">XStarTy</span></a></span></span><span>          </span><span id="local-6989586621680874937"><span class="annot"><a href="#local-6989586621680874937"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-705"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XKindSig"><span class="annot"><a href="GHC.Hs.Extension.html#XKindSig"><span class="hs-identifier hs-var">XKindSig</span></a></span></span><span>         </span><span id="local-6989586621680874935"><span class="annot"><a href="#local-6989586621680874935"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-706"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XSpliceTy"><span class="annot"><a href="GHC.Hs.Extension.html#XSpliceTy"><span class="hs-identifier hs-var">XSpliceTy</span></a></span></span><span>        </span><span id="local-6989586621680874933"><span class="annot"><a href="#local-6989586621680874933"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-707"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XDocTy"><span class="annot"><a href="GHC.Hs.Extension.html#XDocTy"><span class="hs-identifier hs-var">XDocTy</span></a></span></span><span>           </span><span id="local-6989586621680874931"><span class="annot"><a href="#local-6989586621680874931"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-708"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XBangTy"><span class="annot"><a href="GHC.Hs.Extension.html#XBangTy"><span class="hs-identifier hs-var">XBangTy</span></a></span></span><span>          </span><span id="local-6989586621680874929"><span class="annot"><a href="#local-6989586621680874929"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-709"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XRecTy"><span class="annot"><a href="GHC.Hs.Extension.html#XRecTy"><span class="hs-identifier hs-var">XRecTy</span></a></span></span><span>           </span><span id="local-6989586621680874927"><span class="annot"><a href="#local-6989586621680874927"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-710"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XExplicitListTy"><span class="annot"><a href="GHC.Hs.Extension.html#XExplicitListTy"><span class="hs-identifier hs-var">XExplicitListTy</span></a></span></span><span>  </span><span id="local-6989586621680874925"><span class="annot"><a href="#local-6989586621680874925"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-711"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XExplicitTupleTy"><span class="annot"><a href="GHC.Hs.Extension.html#XExplicitTupleTy"><span class="hs-identifier hs-var">XExplicitTupleTy</span></a></span></span><span> </span><span id="local-6989586621680874923"><span class="annot"><a href="#local-6989586621680874923"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-712"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XTyLit"><span class="annot"><a href="GHC.Hs.Extension.html#XTyLit"><span class="hs-identifier hs-var">XTyLit</span></a></span></span><span>           </span><span id="local-6989586621680874921"><span class="annot"><a href="#local-6989586621680874921"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-713"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XWildCardTy"><span class="annot"><a href="GHC.Hs.Extension.html#XWildCardTy"><span class="hs-identifier hs-var">XWildCardTy</span></a></span></span><span>      </span><span id="local-6989586621680874919"><span class="annot"><a href="#local-6989586621680874919"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-714"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXType"><span class="annot"><a href="GHC.Hs.Extension.html#XXType"><span class="hs-identifier hs-var">XXType</span></a></span></span><span>           </span><span id="local-6989586621680874917"><span class="annot"><a href="#local-6989586621680874917"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-715"></span><span>
</span><span id="line-716"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-717"></span><span>
</span><span id="line-718"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsForAllVis"><span class="annot"><a href="GHC.Hs.Extension.html#XHsForAllVis"><span class="hs-identifier hs-var">XHsForAllVis</span></a></span></span><span>        </span><span id="local-6989586621680874915"><span class="annot"><a href="#local-6989586621680874915"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-719"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XHsForAllInvis"><span class="annot"><a href="GHC.Hs.Extension.html#XHsForAllInvis"><span class="hs-identifier hs-var">XHsForAllInvis</span></a></span></span><span>      </span><span id="local-6989586621680874913"><span class="annot"><a href="#local-6989586621680874913"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-720"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXHsForAllTelescope"><span class="annot"><a href="GHC.Hs.Extension.html#XXHsForAllTelescope"><span class="hs-identifier hs-var">XXHsForAllTelescope</span></a></span></span><span> </span><span id="local-6989586621680874911"><span class="annot"><a href="#local-6989586621680874911"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-721"></span><span>
</span><span id="line-722"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-723"></span><span>
</span><span id="line-724"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XUserTyVar"><span class="annot"><a href="GHC.Hs.Extension.html#XUserTyVar"><span class="hs-identifier hs-var">XUserTyVar</span></a></span></span><span>   </span><span id="local-6989586621680874909"><span class="annot"><a href="#local-6989586621680874909"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-725"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XKindedTyVar"><span class="annot"><a href="GHC.Hs.Extension.html#XKindedTyVar"><span class="hs-identifier hs-var">XKindedTyVar</span></a></span></span><span> </span><span id="local-6989586621680874907"><span class="annot"><a href="#local-6989586621680874907"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-726"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXTyVarBndr"><span class="annot"><a href="GHC.Hs.Extension.html#XXTyVarBndr"><span class="hs-identifier hs-var">XXTyVarBndr</span></a></span></span><span>  </span><span id="local-6989586621680874905"><span class="annot"><a href="#local-6989586621680874905"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-727"></span><span>
</span><span id="line-728"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-729"></span><span>
</span><span id="line-730"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XConDeclField"><span class="annot"><a href="GHC.Hs.Extension.html#XConDeclField"><span class="hs-identifier hs-var">XConDeclField</span></a></span></span><span>  </span><span id="local-6989586621680874903"><span class="annot"><a href="#local-6989586621680874903"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-731"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXConDeclField"><span class="annot"><a href="GHC.Hs.Extension.html#XXConDeclField"><span class="hs-identifier hs-var">XXConDeclField</span></a></span></span><span> </span><span id="local-6989586621680874901"><span class="annot"><a href="#local-6989586621680874901"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-732"></span><span>
</span><span id="line-733"></span><span class="hs-comment">-- ---------------------------------------------------------------------</span><span>
</span><span id="line-734"></span><span>
</span><span id="line-735"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCFieldOcc"><span class="annot"><a href="GHC.Hs.Extension.html#XCFieldOcc"><span class="hs-identifier hs-var">XCFieldOcc</span></a></span></span><span> </span><span id="local-6989586621680874899"><span class="annot"><a href="#local-6989586621680874899"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-736"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXFieldOcc"><span class="annot"><a href="GHC.Hs.Extension.html#XXFieldOcc"><span class="hs-identifier hs-var">XXFieldOcc</span></a></span></span><span> </span><span id="local-6989586621680874897"><span class="annot"><a href="#local-6989586621680874897"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-737"></span><span>
</span><span id="line-738"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-739"></span><span class="hs-comment">-- Type families for the HsImpExp type families</span><span>
</span><span id="line-740"></span><span>
</span><span id="line-741"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XCImportDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XCImportDecl"><span class="hs-identifier hs-var">XCImportDecl</span></a></span></span><span>       </span><span id="local-6989586621680874895"><span class="annot"><a href="#local-6989586621680874895"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-742"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXImportDecl"><span class="annot"><a href="GHC.Hs.Extension.html#XXImportDecl"><span class="hs-identifier hs-var">XXImportDecl</span></a></span></span><span>       </span><span id="local-6989586621680874893"><span class="annot"><a href="#local-6989586621680874893"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-743"></span><span>
</span><span id="line-744"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-745"></span><span>
</span><span id="line-746"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEVar"><span class="annot"><a href="GHC.Hs.Extension.html#XIEVar"><span class="hs-identifier hs-var">XIEVar</span></a></span></span><span>             </span><span id="local-6989586621680874891"><span class="annot"><a href="#local-6989586621680874891"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-747"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEThingAbs"><span class="annot"><a href="GHC.Hs.Extension.html#XIEThingAbs"><span class="hs-identifier hs-var">XIEThingAbs</span></a></span></span><span>        </span><span id="local-6989586621680874889"><span class="annot"><a href="#local-6989586621680874889"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-748"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEThingAll"><span class="annot"><a href="GHC.Hs.Extension.html#XIEThingAll"><span class="hs-identifier hs-var">XIEThingAll</span></a></span></span><span>        </span><span id="local-6989586621680874887"><span class="annot"><a href="#local-6989586621680874887"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-749"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEThingWith"><span class="annot"><a href="GHC.Hs.Extension.html#XIEThingWith"><span class="hs-identifier hs-var">XIEThingWith</span></a></span></span><span>       </span><span id="local-6989586621680874885"><span class="annot"><a href="#local-6989586621680874885"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-750"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEModuleContents"><span class="annot"><a href="GHC.Hs.Extension.html#XIEModuleContents"><span class="hs-identifier hs-var">XIEModuleContents</span></a></span></span><span>  </span><span id="local-6989586621680874883"><span class="annot"><a href="#local-6989586621680874883"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-751"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEGroup"><span class="annot"><a href="GHC.Hs.Extension.html#XIEGroup"><span class="hs-identifier hs-var">XIEGroup</span></a></span></span><span>           </span><span id="local-6989586621680874881"><span class="annot"><a href="#local-6989586621680874881"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-752"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEDoc"><span class="annot"><a href="GHC.Hs.Extension.html#XIEDoc"><span class="hs-identifier hs-var">XIEDoc</span></a></span></span><span>             </span><span id="local-6989586621680874879"><span class="annot"><a href="#local-6989586621680874879"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-753"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XIEDocNamed"><span class="annot"><a href="GHC.Hs.Extension.html#XIEDocNamed"><span class="hs-identifier hs-var">XIEDocNamed</span></a></span></span><span>        </span><span id="local-6989586621680874877"><span class="annot"><a href="#local-6989586621680874877"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-754"></span><span class="hs-keyword">type</span><span> </span><span class="hs-keyword">family</span><span> </span><span id="XXIE"><span class="annot"><a href="GHC.Hs.Extension.html#XXIE"><span class="hs-identifier hs-var">XXIE</span></a></span></span><span>               </span><span id="local-6989586621680874875"><span class="annot"><a href="#local-6989586621680874875"><span class="hs-identifier hs-type">x</span></a></span></span><span>
</span><span id="line-755"></span><span>
</span><span id="line-756"></span><span class="hs-comment">-- -------------------------------------</span><span>
</span><span id="line-757"></span><span>
</span><span id="line-758"></span><span>
</span><span id="line-759"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-760"></span><span class="hs-comment">-- End of Type family definitions</span><span>
</span><span id="line-761"></span><span class="hs-comment">-- =====================================================================</span><span>
</span><span id="line-762"></span><span>
</span><span id="line-763"></span><span class="hs-comment">-- |Constraint type to bundle up the requirement for 'OutputableBndr' on both</span><span>
</span><span id="line-764"></span><span class="hs-comment">-- the @id@ and the 'NoGhcTc' of it. See Note [NoGhcTc].</span><span>
</span><span id="line-765"></span><span class="hs-keyword">type</span><span> </span><span id="OutputableBndrId"><span class="annot"><a href="GHC.Hs.Extension.html#OutputableBndrId"><span class="hs-identifier hs-var">OutputableBndrId</span></a></span></span><span> </span><span id="local-6989586621680874873"><span class="annot"><a href="#local-6989586621680874873"><span class="hs-identifier hs-type">pass</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-766"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdGhcP"><span class="hs-identifier hs-type">IdGhcP</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680874873"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-767"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#IdGhcP"><span class="hs-identifier hs-type">IdGhcP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Hs.Extension.html#NoGhcTcPass"><span class="hs-identifier hs-type">NoGhcTcPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680874873"><span class="hs-identifier hs-type">pass</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-768"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680874873"><span class="hs-identifier hs-type">pass</span></a></span><span>
</span><span id="line-769"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-770"></span><span>
</span><span id="line-771"></span><span class="hs-comment">-- useful helper functions:</span><span>
</span><span id="line-772"></span><span class="annot"><a href="GHC.Hs.Extension.html#pprIfPs"><span class="hs-identifier hs-type">pprIfPs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680875867"><span class="annot"><a href="#local-6989586621680875867"><span class="hs-identifier hs-type">p</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875867"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680875867"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><span class="hs-operator hs-type">~</span></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Parsed"><span class="hs-identifier hs-type">Parsed</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-773"></span><span id="pprIfPs"><span class="annot"><span class="annottext">pprIfPs :: forall (p :: Pass). IsPass p =&gt; ((p ~ 'Parsed) =&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Hs.Extension.html#pprIfPs"><span class="hs-identifier hs-var hs-var">pprIfPs</span></a></span></span><span> </span><span id="local-6989586621680874862"><span class="annot"><span class="annottext">(p ~ 'Parsed) =&gt; SDoc
</span><a href="#local-6989586621680874862"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">forall (p :: Pass). IsPass p =&gt; GhcPass p
</span><a href="GHC.Hs.Extension.html#ghcPass"><span class="hs-identifier hs-var">ghcPass</span></a></span><span> </span><span class="hs-glyph">@</span><span class="annot"><a href="#local-6989586621680875867"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="annot"><span class="annottext">GhcPass p
</span><a href="GHC.Hs.Extension.html#GhcPs"><span class="hs-identifier hs-var">GhcPs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
(p ~ 'Parsed) =&gt; SDoc
</span><a href="#local-6989586621680874862"><span class="hs-identifier hs-var">pp</span></a></span><span>
</span><span id="line-774"></span><span>                                </span><span class="annot"><span class="annottext">GhcPass p
</span><span class="hs-identifier">_</span></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-775"></span><span>
</span><span id="line-776"></span><span class="annot"><a href="GHC.Hs.Extension.html#pprIfRn"><span class="hs-identifier hs-type">pprIfRn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680875865"><span class="annot"><a href="#local-6989586621680875865"><span class="hs-identifier hs-type">p</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875865"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680875865"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><span class="hs-operator hs-type">~</span></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Renamed"><span class="hs-identifier hs-type">Renamed</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-777"></span><span id="pprIfRn"><span class="annot"><span class="annottext">pprIfRn :: forall (p :: Pass). IsPass p =&gt; ((p ~ 'Renamed) =&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Hs.Extension.html#pprIfRn"><span class="hs-identifier hs-var hs-var">pprIfRn</span></a></span></span><span> </span><span id="local-6989586621680874846"><span class="annot"><span class="annottext">(p ~ 'Renamed) =&gt; SDoc
</span><a href="#local-6989586621680874846"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">forall (p :: Pass). IsPass p =&gt; GhcPass p
</span><a href="GHC.Hs.Extension.html#ghcPass"><span class="hs-identifier hs-var">ghcPass</span></a></span><span> </span><span class="hs-glyph">@</span><span class="annot"><a href="#local-6989586621680875865"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="annot"><span class="annottext">GhcPass p
</span><a href="GHC.Hs.Extension.html#GhcRn"><span class="hs-identifier hs-var">GhcRn</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
(p ~ 'Renamed) =&gt; SDoc
</span><a href="#local-6989586621680874846"><span class="hs-identifier hs-var">pp</span></a></span><span>
</span><span id="line-778"></span><span>                                </span><span class="annot"><span class="annottext">GhcPass p
</span><span class="hs-identifier">_</span></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-779"></span><span>
</span><span id="line-780"></span><span class="annot"><a href="GHC.Hs.Extension.html#pprIfTc"><span class="hs-identifier hs-type">pprIfTc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621680875863"><span class="annot"><a href="#local-6989586621680875863"><span class="hs-identifier hs-type">p</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="GHC.Hs.Extension.html#IsPass"><span class="hs-identifier hs-type">IsPass</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680875863"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680875863"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="annot"><span class="hs-operator hs-type">~</span></span><span> </span><span class="hs-special">'</span><span class="annot"><a href="GHC.Hs.Extension.html#Typechecked"><span class="hs-identifier hs-type">Typechecked</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-781"></span><span id="pprIfTc"><span class="annot"><span class="annottext">pprIfTc :: forall (p :: Pass).
IsPass p =&gt;
((p ~ 'Typechecked) =&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Hs.Extension.html#pprIfTc"><span class="hs-identifier hs-var hs-var">pprIfTc</span></a></span></span><span> </span><span id="local-6989586621680874837"><span class="annot"><span class="annottext">(p ~ 'Typechecked) =&gt; SDoc
</span><a href="#local-6989586621680874837"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">forall (p :: Pass). IsPass p =&gt; GhcPass p
</span><a href="GHC.Hs.Extension.html#ghcPass"><span class="hs-identifier hs-var">ghcPass</span></a></span><span> </span><span class="hs-glyph">@</span><span class="annot"><a href="#local-6989586621680875863"><span class="hs-identifier hs-type">p</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="annot"><span class="annottext">GhcPass p
</span><a href="GHC.Hs.Extension.html#GhcTc"><span class="hs-identifier hs-var">GhcTc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
(p ~ 'Typechecked) =&gt; SDoc
</span><a href="#local-6989586621680874837"><span class="hs-identifier hs-var">pp</span></a></span><span>
</span><span id="line-782"></span><span>                                </span><span class="annot"><span class="annottext">GhcPass p
</span><span class="hs-identifier">_</span></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-783"></span></pre></body></html>